Kotlin の when 式は、Java でいうところの switch 文を強力にした感じです。
ここでは、条件分岐 when 式についてまとめます。
when 式
フォーマット
when (式) { 条件 -> 式 ... }
when 式を switch のような使い方をすると、以下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 |
fun main() { val x = 5 var str = when (x) { 1 -> "one" 2, 3 -> "two or three" else -> { "unknown" } } println(str) } |
実行結果
unknown
when 式も if 式と同様に、ブロック内が実行され、最後に評価される式が when 式の結果となります。
Java の switch 文のように、break を記述する必要はありません。
参考
if 式については、「条件分岐① if 式」にまとめています。

when 式の条件には定数以外も記述可能
Kotlin の when 式では、以下のような式を条件に使用することができます。
1 2 3 4 5 6 7 8 9 10 11 |
fun main() { val x = 5 var str = when (x) { 1 -> "one" myFavoriteInt() -> "favorite: $x" in 2..10 -> "2 <= x <= 10" else -> x.toString() } println(str) } |
実行結果
2 <= x <= 10
他にも、is を用いて型チェックをすることもできます。
1 2 3 4 5 6 7 8 9 |
fun main() { val x = "kotlin" var blank = when (x) { is String -> x.isBlank() else -> true } println(blank) } |
実行結果
false