【学習kotlinシリーズ】when文

2017年6月2日

Qiitaでことりん学習帳を発売しています!

when文についての感想

Kotlinの中でもwhen文は強力。C言語などでのswitch文はそれほど使う気にはならないけれど、when文はめちゃめちゃ使える(小並感)。

when文の書き方

when文はswitch文のように

when(変数){
条件1-> 実行文
条件2 -> 実行文
・・・
else -> 実行文 
}

のようにして書く。breakはいらない。

実際に書いてみる

fun test(){
}

fun main(args: Array<String>){

    val data = 2

    // switch文のような使い方
    when(data) {

        1, 2, 3 -> println("one or two or three")
        in 4..10 -> println("4 〜 10")
        else -> println("other")
    }

    println("-------------------------")


    val data2 = 50

    // 代入文としての使い方
    val result = when(data2) {
        1, 2 -> "one or two"
        3 -> "three"
        in 4..100 -> "4 〜 100"
        else -> "many"
    }

    println(result)

    println("-------------------------")


    // 定数だけではなく、関数も判定できる
    when(test()){
        test() -> println("execute test function")
        else -> println("don't execute test function")
    }

    println("-------------------------")

    //型の判定もできる
    val data3 = when(data2){
        is Int -> data2 + 100
        else -> false
    }
    println(data3)
    
}

実行結果

one or two or three
-------------------------
4 〜 100
-------------------------
execute test function
-------------------------
150

実行結果を取り出せたり、条件にレンジを適用できたりと色々便利。