Kotlinのwhen文をです。
whenはJavaでいうところのswitch文ですが、
switchよりもできることが多いです。
使用例を見ていきましょう
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
fun main(args: Array<String>) { // when var x: Int = 100 when (x) { 7 -> print("x is 7") // ","により続けて指定できる 1,2 -> print("x is 1 or 2") // 複数処理を実行したい場合は{}で囲む 10 -> { print("x is 10") print("."); } // defaultはelseで else -> { // (1)xに値を代入することができる 0 } } print(x) } |
switch文よりもかなり柔軟になっていることがわかりますが、
(1)のようにwhenで指定した変数にに対して値を代入することもできます。
ここでの実行結果は、0と表示されることになります。
さらにwhen式では、関数で評価される値なども条件分岐に使用することが可能になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
fun main(args: Array<String>) { // when var x: Int = 100 when (x) { // inによる範囲指定も可能 in 1..99 -> print("1 to 99") // 関数による評価 isOver100() -> print(x) } // 100 print(x) } fun isOver100() : Int{ return 100 } |
if elseで実装されるような複数存在する条件分岐でもwhenを使用することができます。
1 2 3 4 5 6 7 8 9 10 11 |
fun main(args: Array<String>) { var point: Int = 20000 val y = when { // 大なり小なりによる条件分岐 point >= 100000 -> "Grand Master" point >= 50000 -> "Master" point >= 10000 -> "Challenger" else -> "Beginner" } print(y) } |