Search

조건문 - switch

switch 문

단 하나의 조건식으로 많은 경우의 수 처리가 가능한 조건문
조건식 계산 후, 그 결과와 일치하는 case 문으로 이동하여 해당 문장들을 수행
break 을 만나면 전체 switch 문으로 빠져나가게 됨.
조건식의 결과와 일치하는 case 문이 없으면, default 문으로 이동
보통 가장 마지막에 두며 break 문을 쓸 필요 X
case 문마다 break를 빼먹지 말자!
switch (조건식) { case1 : // 조건식의 결과가 값1과 같을 경우 수행될 문장들 // ... break; case2 : // 조건식의 결과가 값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 : 주민번호로 출생년, 성별 판별

참고 자료