티스토리 뷰

dev/java

[Java] Switch-case 문법과 예시

crscnt 2020. 12. 24. 21:00

Switch-case 문법

// switch문
switch(expression)
{
   // case문
   // value는 expression의 데이터 타입과 동일하여야 한다.
   case value1 :
      statements;
      break; // (옵션) 
            // -> break를 만나는 경우 switch문을 탈출한다. break문이 없으면, 아래의 조건들이 모두 실행된다.
   case value2 :
      statements;
      break; // (옵션)
   
   // default문
   // 모든 조건에 맞지 않는 경우 실행된다.
   default : 
      statements;
}

1. 중복된 case 값은 허용하지 않는다.

2. case의 값은 switch() 에 들어가는 변수와 동일한 데이터 타입이어야 한다.

3. case의 값은 상수 또는 리터럴이어야 한다. 변수는 허용되지 않는다.

4. break문은 옵션이다. switch문을 종료하기 위해 사용된다. 생략하는 경우 아래의 case들이 실행된다.

5. default문은 모든 case에 일치하지 않는 경우 실행된다.

 


예시

public class Test {
    public static void main(String[] args)
    {
        int food = 1;

        switch (food) {
        case 1:
            System.out.println("Croissant");
            break;
        case 2:
            System.out.println("Orange Juice");
            break;
        case 3:
            System.out.println("Omelet");
            break;
        default:
            System.out.println("Water");
        }
    }
}

Output:

Croissant

 

자바의 Switch-case 조건문을 사용할 때에는 주의할 점이 있다.

조건이 일치하는 case만 실행되기 원할 경우에는 꼭 해당 case문 아래에 break;를 추가해줘야 한다.

위의 코드에서 각 case에 적혀 있는 break; 를 제거하고 실행 결과를 확인해보자. 

public class Test {
    public static void main(String[] args)
    {
        int food = 1;

        switch (food) {
        case 1:
            System.out.println("Croissant");
        case 2:
            System.out.println("Orange Juice");
        case 3:
            System.out.println("Omelet");
        default:
            System.out.println("Water");
        }
    }
}

 Output:

Croissant
Orange Juice
Omelet
Water

case 1의 Croissant을 출력 후 종료되는 것이 아니라 아래의 모든 case들에 대해서도 코드가 실행이 된 것을 확인할 수 있다.

728x90
댓글