Switch 문은 일상 가전제품의 필수 요소입니다. 전등 스위치로 램프를 켜는 것을 생각해 보세요. Java에서 switch도 비슷한 역할을 합니다: 단일 값을 평가하고 일치하는 블록만 실행합니다.
Java에서 Switch-Case란?
switch는 표현식을 여러 case 레이블과 비교하는 조건문 유형입니다. 표현식이 레이블과 일치하면 해당 블록이 break 또는 switch 끝까지 실행됩니다. 일치하는 레이블이 없으면 default 블록이 실행됩니다.
아래는 한 자리 숫자를 단어 표현으로 매핑하는 간결한 예제입니다.
class SwitchBoard {
public static void main(String[] args) {
int iSwitch = 4;
switch (iSwitch) {
case 0:
System.out.println("ZERO");
break;
case 1:
System.out.println("ONE");
break;
case 2:
System.out.println("TWO");
break;
case 3:
System.out.println("THREE");
break;
case 4:
System.out.println("FOUR");
break;
default:
System.out.println("Not in the list");
break;
}
}
}
출력: FOUR
If-Else 대신 Switch를 쓰는 이유?
가독성: 단일 switch 문이 if-else 체인보다 훤씬 보기 쉽습니다.
유지보수성: case 추가/제거 시 최소한의 수정만 필요.
성능: 많은 구분 값에 대해 switch가 더 빠를 수 있으며, 특히 컴파일러가 룩업 테이블이나 점프 테이블로 최적화할 때.
하지만 if-else는 범위 체크나 복잡한 불리언 로직에 여전히 적절합니다.
break와 default 이해하기
break는 switch 블록을 빠져나가며, 이후 case로의 fall-through를 방지.
default는 어떤 case도 일치하지 않을 때 실행되는 안전망.
break 생략은 fall-through를 유발하는데, 의도적(여러 case 그룹화)일 수 있지만 잊은 경우 버그 원인이 됩니다.