3.2 선택문
Java 언어에서는 특정 데이터의 값에 따라 수행할 구문을 선택하는 문법을 제공합니다. 이와 같은 문법을 일반적으로 선택문이라 부르며 switch case 문이라고도 부릅니다.
switch(데이터){
[case 상수:] [수행 statment;] [break;]
[case 상수:] [수행 statment;] [break;]
[default:] [수행 statment;] [break;]
}
Java 언어에서 switch case 문은 switch 뒤의 괄호 내부에 데이터를 표현하고 그 값의 종류에 따라 case 상수 레이블(코드 내부에 콜론이 붙은 것)을 지정하여 수행할 위치를 정할 수 있습니다. 그리고 case 상수 레이블에 표현하지 않은 값일 때는 default 레이블 위치의 구문을 수행합니다.
[소스 3.4] switch case 사용 예제
private static void exSwitchCase() { int num = 0; System.out.println("정수를 입력하세요."); num = scanner.nextInt(); switch(num){ case 1: System.out.println("One");break; case 2: System.out.println("Two");break; case 3: System.out.println("Three");break; default: System.out.println("Other");break; } }
1 입력 결과
정수를 입력하세요. 1 One
2 입력 결과
정수를 입력하세요. 2 Two
4 입력 결과
정수를 입력하세요. 4 Other
선택문으로 작성할 구문은 조건문을 이용해서 작성할 수 있습니다. 하지만 선택할 경우의 수가 많을 때는 조건문보다 효과적입니다.
[소스 3.4] switch 선택문 대신 if else를 사용한 예
private static void exIfVSSwitch() { int num = 0; System.out.println("정수를 입력하세요."); num = scanner.nextInt(); if(num==0) { System.out.println("One"); } else if(num==1){ System.out.println("Two"); } else if(num==2){ System.out.println("Three"); } else{ System.out.println("Other"); } }
선택문을 사용할 때 주의할 점은 시작할 위치를 결정하는 것이라 데이터 값에 따라 수행할 구문이 다를 때 수행 구문 뒤에 break; 문을 표시하여 switch case 문을 마칠 수 있게 해야 합니다.
[소스 3.5] break 문을 생략했을 때
private static void exSwitchCase2() { int num = 0; System.out.println("정수를 입력하세요."); num = scanner.nextInt(); switch(num){ case 1: System.out.println("One"); case 2: System.out.println("Two"); case 3: System.out.println("Three"); default: System.out.println("Other"); } }
2 입력 결과
정수를 입력하세요. 2 Two Three Other