switch문

Mia Lee·2021년 11월 8일
0

JAVA

목록 보기
18/98
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() 끝

}










0개의 댓글