/ JAVAJUNGSUK

Ch4-9~11. switch문

자바의 정석 기초편

0. 목차



Chapter4. 조건문과 반복문

Ch4 - 9. switch문

Ch4 - 10. switch문의 제약조건

Ch4 - 11. switch문의 제약조건 예제



Ch4 - 9. switch문


▶ switch문이란?

▷ 처리해야하는 경우의 수가 많을 때 유용한 조건문
  • 조건식 계산
  • 조건식의 결과와 일치하는 case문으로 이동
  • case문 아래의 문장들을 수행
  • break문 또는 switch문의 끝을 만나면 switch문 전체를 빠져나감
      switch (조건식) {
          case a :
          // 조건식의 값이 a일 때, 이 부분(case 값a : _)을 실행
              break;  // switch문 빠져나감
          case b :
          // 조건식의 값이 b일 때, 이 부분(case 값b : _)을 실행
              break;
          default :
          // 조건식의 결과가 일치하는 case문이 없을 때, 이 부분(default : _)을 실행
          // default문은 생략가능
      }
    

▶ if문과 switch문

▷ 조건식 값
  • if문 조건식 값 : true or false → 2가지
  • switch문 조건식 값 : 정수 or 문자열 → 여러가지
▷ 조건식
  • if문 조건식 : 여러 번 → true와 false 밖에 계산을 못해서 식이 많음
  • switch문 조건식 : 한 번 → case만 추가하면 됨



Ch4 - 10. switch문의 제약조건


▶ switch문의 제약조건

▷ switch문의 조건식 결과는 정수 또는 문자열
▷ case문의 값은 정수, 상수(문자포함), 문자열만 가능 - 변수 안됨, 중복 안됨
int num, result;
final int ONE = 1;

switch(result) {
    case '1' :  // 가능, 문자 리터럴
    case ONE :  // 가능, 정수 상수
    case "YES" :    // 가능, 문자열 리터럴
    case num :  // 불가능, 변수
    case 1.0 :  // 불가능, 실수
}



Ch4 - 11. switch문의 제약조건 예제


▶ 월 입력 시, 계절 출력

▷ case1 : 봄 3, 4, 5월
▷ case2 : 여름 6, 7, 8월
▷ case3 : 가을 9, 10, 11월
▷ case4 : 겨울 12, 1, 2월
System.out.printf("지금은 몇 월 인가요? > ");

Scanner scanner = new Scanner(System.in);
int month = scanner.nextInt();

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:
        System.out.println("겨울~**");
        
// console
지금은   인가요? > 6
여름~!

case문은 가로로 작성해도 됨