일련의 조건을 평가할 때 유용하다.
function getGrade(score: number): string {
switch (true) {
case score >= 90:
return 'A';
case score >= 80:
return 'B';
case score >= 70:
return 'C';
case score >= 60:
return 'D';
default:
return 'F';
}
}
장점
- 복잡한 if-else 체인을 더 읽기 쉬운 형태로 구조화할 수 있다.
- 각 case에 여러 조건을 묶을 수 있어 유연성이 높다.
- break 문을 생략하면 fall-through 동작을 활용할 수 있다.
단점
- 일반적인 switch 문 사용법이 아니어서 다른 개발자들이 혼란스러워할 수 있다.
- 성능 면에서 일반적인 if-else 문과 큰 차이가 없다.
주의점
- 첫 번째로 true가 되는 case만 실행되므로, 조건의 순서가 중요하다.