Switch문
은 단 하나의 조건식으로 많은 경우의 수를 처리🍟 switch문의 수행 과정
① 조건식을 계산
② 조건식의 결과와 일치하는 case문으로 이동
③ 이후의 문장들을 수행
④ break문이나 switch문의 끝을 만나면 switch문 전체를 빠져나감
switch(①조건식) {
case 값1 :
//조건식의 결과가 값1과 같은 경우 수행될 문장들
//...
break;
②case 값2 :
//③조건식의 결과가 값2와 같을 경우 수행될 문장들
//...
④break; //switch문을 벗어남
//...
default :
//조건식의 결과와 일치하는 case문이 없을 때 수행될 문장들
//...
}
default문
으로 이동break문
은 각 case문의 영역을 구분하는 역할🚩 switch문의 제약조건
①switch문의 조건식의 결과값은 정수 또는 문자열이어야 함
②case문의 값은 정수 상수(문자포함). 문자열만 가능. 중복되지 않아야 함(결과값과 일치하는 case문으로 이동하기 때문)
🍕 case문의 몇가지 예
public static void main(String[] args) {
int num, result;
final int ONE = 1;
...
switch(result) {
case '1': //OK. 문자 리터럴(정수 49와 동일)
case ONE: //OK. 정수 상수('final'붙은 정수 상수)
case "YES": //OK. 문자열 리터럴.JDK 1.7부터 허용
case num: //에러. 변수 불가
case 1.0: //에러. 실수 불가
...
}
🍕 예제의 switch문을 if문으로 변경
if(month==3 || month==4 || month ==5) {
System.out.println("현재의 계절은 봄입니다.");
} else if(month==6 || month==7 || month==8) {
System.out.println("현재의 계절은 여름입니다.");
} else if(month==9 || month==10 || month==11) {
System.out.println("현재의 계절은 가을입니다.");
} else (//if(month==12 || month==1 || month==2)
System.out.println("현재의 계절은 겨울입니다.");
}