Kotlinでは積極的にwhenを使いたい

1 min read読了の目安(約800字

when式

kotlinではwhen式というものがあります。これが結構簡潔に記述短くかけるので、使えるところは積極的に使っていこうよという話です。
有名な問題FizzBuzzを通して見ていきます。
まずは、for文の中にif式で書いてみました

if式

fun main(){
    for(i in 1..100){
        if(i % 15 == 0){
            println("FizzBuzz")
        }else if(i % 5 == 0){
            println("Buzz")
        }else if (i % 3 == 0) {
            println("Fizz")
        }else{
            println("${i}")
        }
    }
}

本題のwhen式で書いてみました。

when式

fun main(){
    for(i in 1..100){
        val value = when{
            i % 15 == 0 -> "FizzBuzz"
            i % 5 == 0 -> "Buzz"
            i % 3 == 0 -> "Fizz"
            else -> "${i}"
        }
        println(value)
    }
}

when式の利点

  • 判定式が縦に並んでいて、視覚的に比較しやすい
  • 判定後の値が -> 以降になるのも、記号意味的に分かりやすい
  • printlnの記述が一回ですむ

when式の欠点

  • そんなに思いつかない

結論:積極的にWhen式を使っていこう