package switch_statement;
public class Ex1 {
public static void main(String[] args) {
/*
* switch ~ case 문
*
* < 기본 문법 >
* switch(조건식) {
*
* case 값1 :
* // 조건식 결과가 값1과 일치할 경우 실행할 문장들...
* [break;]
*
* case 값n :
* // 조건식 결과가 값n과 일치할 경우 실행할 문장들...
* [break;]
*
* [default : // 일치하는 case 문이 없을 경우 실행할 문장들...]
*
* }
*
* - if문이 switch ~ case 문보다 윤여하므로
* switch ~ case 문은 if문으로 100% 전환이 가능하지만
* if문은 switch ~ case 문으로 전환이 불가능할 수 있다.
* - if문은 실행 시점에서 조건을 판별하여 실행할 문장이 결정되지만,
* switch ~ case 문은 번역 시점에 실행할 문장이 결정되므로 실행 속도가 if문보다 빠름
*
*/
int num = 1;
// 결과가 정수 또는 문자열인 변수 또는 식을 switch문 () 안에 작성
switch (num) { // 정수형 변수 num을 조건식으로 사용
// case 문을 사용하여 정수형 변수 num의 값과 비교할 값 지정
case 1 :
System.out.println("num = 1");
break; // 현재 switch 문을 벗어남
case 2 :
System.out.println("num = 2");
break;
case 3 :
System.out.println("num = 3");
break;
}
System.out.println("프로그램 종료!");
System.out.println("===================================================");
switch (num) { // 정수형 변수 num을 조건식으로 사용
// case 문을 사용하여 정수형 변수 num의 값과 비교할 값 지정
// num = 1 일 때, case 1문장을 실행한 후 break 문이 없으므로
// case 1 실행 아래쪽의 모든 실행문을 실행
// => 단, break 문을 만나거나 switch 문이 끝날때까지 실행함!
case 1 :
System.out.println("num = 1");
case 2 :
System.out.println("num = 2");
case 3 :
System.out.println("num = 3");
}
System.out.println("프로그램 종료!");
System.out.println("===================================================");
switch (num) { // 정수형 변수 num을 조건식으로 사용
// case 문을 사용하여 정수형 변수 num의 값과 비교할 값 지정
case 1 :
System.out.println("num = 1");
case 2 :
System.out.println("num = 2");
case 3 :
System.out.println("num = 3");
default :
System.out.println("default 문 실행됨!");
}
System.out.println("프로그램 종료!");
System.out.println("===================================================");
/*
* switch ~ case 문의 단점
* - 조건식에도 제약 사항이 있지만
* case 문 뒤에 값만 올 수 있고, 식이나 범위 지정이 불가능하므로
* if문에 비해 유연성이 떨어짐
*
*/
int score = 89;
// 입력받은 점수(score)의 학점 출력하기 위해 switch문 사용 시
// 점수 범위 지정이 불가능하여 0 ~ 100점까지 case문 모두 작성 필요
switch (score) {
case 100: System.out.println("A학점!"); break;
case 99: System.out.println("A학점!"); break;
case 98: System.out.println("A학점!"); break;
// ... 생략 ...
case 89 : System.out.println("B학점!"); break;
}
System.out.println("===================================================");
String name = "A";
switch (name) { // 문자열 데이터도 swich 문 조건식으로 활용 가능
case "K" :
case "k" :
System.out.println("KOREA");
break;
case "A" :
case "a" :
System.out.println("America");
break;
}
// switch문에 실수를 사용 할 경우
// switch (3.14) { // 오류 발생!
//
// }
} // main() 끝
}