본문 바로가기
언어/java

[java] switch/case 문

by 개발LOG 2025. 5. 2.
반응형

switch/case 구조문:

switch(입력변수) {
    case 입력값1: ...
         break;
    case 입력값2: ...
         break;
    ...
    default: ...
         break;
}

if-else if-else문을 switch문으로 바꿀 수 있다.

break를 쓰면 해당 case만 실행하고 swich문을 빠져나가고, 만약 break를 쓰지 않는다면 참인 것 아래 case들 다 실행된다.

default문은 생략가능하고 사용할 시 case문을 실행하고 마지막으로 무조건 실행된다.

 


Java에서 switch 문에서 break 문이 있을 때없을 때의 동작 차이


✅ break가 있을 때

int num = 2;

switch (num) {
    case 1:
        System.out.println("One");
        break;
    case 2:
        System.out.println("Two");
        break;
    case 3:
        System.out.println("Three");
        break;
    default:
    	System.out.println("default");
}

출력:

Two
  • break는 해당 case 실행 후 switch 문을 빠져나오게 합니다.
  • 원하는 case만 실행하고, 나머지는 건너뜀.

⚠️ break가 없을 때

int num = 2;

switch (num) {
    case 1:
        System.out.println("One");
    case 2:
        System.out.println("Two");
    case 3:
        System.out.println("Three");
    default:
    	System.out.println("default");
}

출력:

Two
Three
default
  • num이 2인 case부터 시작해 break가 없으므로 아래로 계속 실행됨.
  • 이것을 fall-through 현상이라고 부릅니다.

요약

구분 결과

break 있음 해당 case만 실행하고 switch 블록 종료
break 없음 해당 case 이후의 모든 case가 순차 실행됨

특수한 경우에 intentionally fall-through(의도적으로 break 없이 여러 case를 실행)하는 경우도 있지만, 대부분은 실수로 break를 빼서 버그가 생기는 경우가 많다.

 

 

반응형