코틀린에서 if와 when은 단순한 문장(Statement)이 아니라, 결과를 즉시 반환할 수 있는 표현식(Expression)입니다. 즉, 조건문의 결과를 변수에 바로 대입할 수 있어 불필요한 변수 선언을 줄일 수 있습니다.
또한 자바에서 장황하고 버그를 유발하기 쉬웠던 switch문은 코틀린에서 when으로 완벽하게 진화했습니다. break 키워드가 전혀 필요 없고, 훨씬 유연하게 조건을 검사할 수 있습니다.
자바의 if는 단지 행동을 지시(Statement)할 뿐이라서, int max; if(...) max=a; else max=b; 처럼 코드를 길게 짜거나 삼항 연산자를 써야 했습니다.
코틀린의 if와 when은 스스로 값을 만들어내는 수식(Expression)이므로, val max = if(...) a else b 처럼 깔끔하게 변수에 직행(대입)할 수 있습니다.
| 비교 항목 | Java (switch) | Kotlin (when) |
|---|---|---|
| break 키워드 | 안 쓰면 아래로 줄줄이 실행됨 (치명적 버그 원인) | break가 아예 필요 없음 (조건 맞으면 자동 탈출) |
| 조건의 유연성 | 단순한 값(상수, 문자열)만 매칭 가능 | 범위(in), 타입 확인(is), 복잡한 수식 등 모든 것 매칭 가능 |
| 기본값(default) | default: |
else -> |