switch 문
단 하나의 조건식으로 많은 경우의 수 처리가 가능한 조건문
•
조건식 계산 후, 그 결과와 일치하는 case 문으로 이동하여 해당 문장들을 수행
•
break 문을 만나면 전체 switch 문으로 빠져나가게 됨.
•
조건식의 결과와 일치하는 case 문이 없으면, default 문으로 이동
◦
보통 가장 마지막에 두며 break 문을 쓸 필요 X
•
case 문마다 break를 빼먹지 말자!
switch (조건식) {
case 값1 :
// 조건식의 결과가 값1과 같을 경우 수행될 문장들
// ...
break;
case 값2 :
// 조건식의 결과가 값2과 같을 경우 수행될 문장들
// ...
break;
// ...
default :
// 조건식의 결과와 일치하는 case 문이 없을 때 수행될 문장들
// ...
}
Java
•
경우에 따라 break 문을 생략해야 할 수도!
int level = 2;
// 회원 등급에 따라 게시판 이용 권한을 부여
switch (level) {
case 3 :
grantDelete(); // 삭제 권한 부여
case 2 :
grantWrite(); // 쓰기 권한 부여
case 1 :
grantRead(); // 읽기 권한 부여
}
Java
switch 문의 제약 조건
1. switch 문의 조건식 결과는 반드시 정수 or 문자열
2. case 문 값은 반드시 정수 or 상수, 중복 X
public static void main(String[] args) {
int num, result;
final int ONE = 1;
switch(result) {
case '1': // 문자 리터럴(저웃 상수 49와 동일)
case ONE: // 정수 상수
case "YES": // 문자열 리터럴. JDK 1.7부터
case num: // 에러. 변수는 불가
case 1.0 // 에러. 실수도 불가
}
Java
FlowEx6.java : 계절 구하기
FlowEx7.java : 가위 바위 보 게임
FlowEx8.java : 주민번호로 성별 구하기
FlowEx9.java : 학점 계산기
FlowEx10.java : switch 문 학점 계산기 간단 버전
switch 문의 중첩
•
중첩 switch 문에서 break 문 누락을 주의
FlowEx11.java : 주민번호로 출생년, 성별 판별