반응형
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를 빼서 버그가 생기는 경우가 많다.
반응형
'언어 > java' 카테고리의 다른 글
[java] Map-HashMap, LinkedHashMap, TreeMap (0) | 2025.05.02 |
---|---|
[java] Set-HashSet, LinkedHashSet, TreeSet (0) | 2025.05.02 |
[java] 이클립스 단축키 모음 (0) | 2025.05.02 |
[java] 삼항연산자 (0) | 2025.04.09 |
[java] JVM 동작 방식 및 메모리 구조 (0) | 2024.12.23 |