프로그래밍/Scala

[Scala] 표현식 과 조건문

Dibrary 2022. 6. 10. 09:50
반응형

안녕하세요 Dibrary입니다.

이번에는 표현식과 조건문을 정리해보겠습니다.

먼저 표현식(Expression)이란 '실행 후 값을 반환하는 코드 단위'를 지칭합니다. 값을 반환하기 때문에 함수형 프로그래밍의 기반이 됩니다.

 

이게 정말 간단한 표현식인 것이죠. 

amount는 그저 100+10만 반환할 뿐입니다. 

그러면 이렇게 하는 것과 무슨 차이가 있느냐 생각이 드실 겁니다.

각각 따로 입력하고 처리해도 같은 결과가 나오니까요.

 

표현식으로 표현할 경우 'x가 amount를 정의하기 위한 것' 이라는 의도가 보이게 하는 것입니다. 이 '이해'에 차이를 줄 수 있죠.

중괄호 안에 쓸 내용이라면 여러 줄에 걸쳐서도 작성이 가능합니다.

 


조건문은 if-else를 사용해서 작성이 가능합니다.

먼저 if만 써봤습니다. 조건문의 조건이 2>0 이므로 참이니까 println구문이 실행된 것을 볼 수 있습니다.

 

조건문의 결과를 한 번에 변수에 담아보았습니다.
x가 y보다 크지 않기 때문에 y값이 value에 담긴 것을 볼 수 있습니다.

 


Scala에는 매치표현식이라고 부르는 것이 있습니다. JAVA에서는 switch-case문으로 사용한 것과 거의 흡사합니다.

바로 위에서 사용한 if(x>y) x else y 조건문을 매치표현식으로 변경해 보았습니다.

 

만약 조건에 해당하지 않는 입력이 들어오면 어떨까요?

입력 데이터는 MONDAY인데 case에 해당사항이 없죠.  에러가 납니다.

에러는 MatchError라고 '매치표현식에서 에러가 났다' 는 말이죠.

따라서 매치표현식을 사용하려면 와일드카드를 사용하거나 모든 가능한 입력을 포함할 수 있을 만큼의 패턴을 구현해 줘야 합니다.

 

그러면 에러가 나지 않게 other를 사용해 보겠습니다.

해당 조건이 없기 때문에 other로 빠졌고, println 구문만 실행되고 담긴 값이 없으므로 Any로 나오는 것을 보실 수 있습니다.

728x90
반응형