본문 바로가기
프로그래밍 언어/자바의 정석 기초편

자바의 정석 기초편 ch4-9~11 switch문

by life grow 2022. 5. 17.

ch4-9 switch문

처리해야 하는 경우의 수가 많을 때 유용한 조건문

조건식이 true, false가 아니다.

switch문의 조건식과 일치하는 case값이 없을 때 default로 간다.

default에는 break문 없어도 된다.

else 블럭처럼 default 생략가능.

switch문 if else문 비교

if문 조건식: true, false

조건식 여러개

 

switch문 조건식: 정수, 문자열

조건식 한개

단 제약조건이 있다.

제약조건으로 쓸 수 없을때 if else문 써야된다.

 

switch문은 항상 if문으로 바꿀 수 있다.

하지만 if문은 switch문으로 바꿀 수 없는 경우가 많다.

 

ch4-10 switch문의 제약 조건

1. switch문의 조건식 결과는 정수 또는 문자열이어야 한다.(자바jdk1.7버전부터 문자열도 가능)

2. case문의 값은 정수 상수(문자 포함), 문자열만 가능하며, 중복되지 않아야 한다.

변수x 문자는 정수로 저장되기 때문에 가능하다. 

 

case문은

(1) case 3:
case 4:
case 5:

(2) case 6: case 7: case 8:

(1), (2) 아무 방법이나 상관없다.

근데 깔끔하게 2번이 남

 

break문이 없으면

다른 case문까지 가버린다.

 

ch4-11 switch문의 제약조건 예제

import java.util.Scanner;

class Ex4_6 {
	public static void main(String[] args) { 
		System.out.print("현재 월을 입력하세요.>");

		Scanner scanner = new Scanner(System.in);
		int month = scanner.nextInt();  // 화면을 통해 입력받은 숫자를 month에 저장

		switch(month) {
			case 3: 
			case 4: 
			case 5:
				System.out.println("현재의 계절은 봄입니다.");
				break;
			case 6: case 7: case 8:
				System.out.println("현재의 계절은 여름입니다.");
				break;
			case 9: case 10: case 11:
				System.out.println("현재의 계절은 가을입니다.");
				break;
			default:
	//		case 12:	case 1: case 2:
				System.out.println("현재의 계절은 겨울입니다.");
		}
	} // main의 끝
}