만자의 개발일지

[Java] Switch 표현 정리 본문

Java/Java

[Java] Switch 표현 정리

박만자 2021. 2. 24. 20:46

보통 우리가 switch문에서 사용하는 예약어는 switch,case,default,break 등이 있다.

 

 

switch문에서 소괄호()안에는 변수 혹은 값이 들어가야 한다. ex) switch(month){}

위 코드를 보면 month가 1로 선언되어있고 switch문안에 month가 주어진걸 볼 수 있다.

case 1: 이 month의 값과 일치하기 때문에 "겨울입니다"를 출력하게 된다.

만약 month의 값이 6이라면 "여름입니다"를 출력하게 될 것이다.

 

switch에서 break는 아주 중요한 역할을 한다.

 

 

 

 

위 코드를 보자.

아까처럼 month의 값은 1로 동일하다. 그치만 결과를 보니 "겨울입니다" 만 출력되야하는데 나머지도 전부 출력되었다.

이처럼 break를 써주지 않으면 switch문을 빠져 나가지 않고 case 1: 밑에 있는 코드들을 전부 실행하게 된다.

default는 case에 지정해준 값이 아닌 그 외의 값이 들어갔을때 실행된다. case가 들어오는 값을 모두 커버해주지 않는 경우라면 default를 꼭 사용하는것을 권장한다.

 

위의 코드를 좀 더 간편하게 바꿔 보자.

 

 

Java SE 12버전 부터 추가된 문법이다.

첫번째 코드와 기능은 똑같다. 확실히 가독성이 올라간게 보인다.

 

 

 

Java SE 13버전 부터 yield라는 예약어가 추가되었다.

위코드들과 기능은 똑같다. month가 1 일때 season 변수에 "겨울입니다"가 들어가게 되고 switch문을 빠져나온다.

다만 switch문에 ;(세미콜론)을 붙여줘야한다.

원래 예약어는 변수로 선언이 불가능한데 특이하게도 yield는 변수 선언이 가능하다

 

 

기존에 불편했던 switch문법이 많이 개선되고 있는거 같다. 😀

Comments