본문 바로가기

JAVA

switch ~ case 문 | 21/11/08

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() 끝
}

switch ~ case 문 사용법과 예시

출력 결과

num = 1
프로그램 종료!
===================================================
num = 1
num = 2
num = 3
프로그램 종료!
===================================================
num = 1
num = 2
num = 3
default 문 실행됨!
프로그램 종료!
===================================================
B학점!
===================================================
America

 

switch ~ case 문은 무엇인가를 선택할때(?) 사용하기 좋은 문법인것 같다!

'JAVA' 카테고리의 다른 글

for문 | 21/11/09  (0) 2022.01.05
switch ~ case 문 활용 | 21/11/08  (0) 2022.01.02
for문 활용 | 21/11/08  (0) 2022.01.02
for문과 if문의 조합 | 21/11/08  (0) 2022.01.02
for 문 | 21/11/08  (0) 2022.01.02