[Java의 정석]Chapter4.조건문과 반복문(09~11)
Chapter 4. 조건문과 반복문
09. switch문
- if문은 조건식의 결과가 참 거짓, 두 가지 밖에 없기 때문에 경우의 수가 많아질수록 else-if를 추가 해야 하므로 복잡해짐
Switch문
은 단 하나의 조건식으로 많은 경우의 수를 처리
🍟 switch문의 수행 과정
① 조건식을 계산
② 조건식의 결과와 일치하는 case문으로 이동
③ 이후의 문장들을 수행
④ break문이나 switch문의 끝을 만나면 switch문 전체를 빠져나감
switch(①조건식) {
case 값1 :
//조건식의 결과가 값1과 같은 경우 수행될 문장들
//...
break;
②case 값2 :
//③조건식의 결과가 값2와 같을 경우 수행될 문장들
//...
④break; //switch문을 벗어남
//...
default :
//조건식의 결과와 일치하는 case문이 없을 때 수행될 문장들
//...
}
- 만일 조건식의 결과와 일치하는 case문이 없는 경우
default문
으로 이동 - default문의 위치는 어디라도 상관없으나 보통 마지막에 놓기 때문에 break문을 쓰지 않아도 됨
- switch문에서
break문
은 각 case문의 영역을 구분하는 역할 - 만일 break문을 생략하면 case문 사이의 구분이 없어지므로 다른 break문을 만나거나 switch문 블럭{}을 만날 때 까지 모든 문장을 수행(그러니 생략에 주의)
10. switch문의 제약조건
🚩 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: //에러. 실수 불가
...
}
11. switch문의 제약조건 예제
🍕 예제의 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("현재의 계절은 겨울입니다.");
}
Author And Source
이 문제에 관하여([Java의 정석]Chapter4.조건문과 반복문(09~11)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@wendy1126/Java의-정석Chapter4.조건문과-반복문0911저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)