Kotlin when運算式

Kotlin when運算式是一個返回值的條件運算式。 Kotlin when運算式用於替換switch語句。 Kotlin when運算式相當於其他語言(Java,C++,C)中的switch語句。

使用when作為運算式

下麵來看看一下運算式的簡單示例。

fun main(args: Array<String>){
    var number = 4
    var numberProvided = when(number) {
        1 -> "One"
        2 -> "Two"
        3 -> "Three"
        4 -> "Four"
        5 -> "Five"
        else -> "invalid number"
    }
    println("You provide $numberProvided")
}

執行上面示例代碼,得到以下結果 -

You provide Four

使用沒有表達的when語句

使用when時,運算式也不是必須要使用的,因為它可以像在其他語言中一樣正常使用。

例如 -

fun main(args: Array<String>){

    var number = 4
    when(number) {
        1 -> println("One")
        2 -> println("Two")
        3 -> println("Three")
        4 -> println("Four")
        5 -> println("Five")
        else -> println("invalid number")
    }

}

執行上面示例代碼,得到以下結果 -

Four

when使用大括弧的多重聲明

可以使用條件塊中包含的多個語句。

例如 -

fun main(args: Array<String>){
    var number = 1
    when(number) {
        1 -> {
            println("Monday")
            println("First day of the week")
        }
        7 -> println("Sunday")
        else -> println("Other days")
    }
}

執行上面示例代碼,得到以下結果 -

Monday
First day of the week

when 多個分支

以使用用逗號分隔的多個條件分支。當需要為多個選擇運行相同的邏輯時就可以使用when多個分支。

fun main(args: Array<String>){
    var number = 8
    when(number) {
        3, 4, 5, 6 ->
            println("It is summer season")
        7, 8, 9 ->
            println("It is rainy season")
        10, 11 ->
            println("It is autumn season")
        12, 1, 2 ->
            println("It is winter season")
        else -> println("invalid input")
    }
}

執行上面示例代碼,得到以下結果 -

It is rainy season

在範圍內使用when

when運算式還檢查條件提供的輸入範圍。 使用..(雙點)運算符創建範圍。 in運算符用於檢查值是否屬於某個範圍。

例如:

fun main(args: Array<String>){
    var number = 7
    when(number) {
        in 1..5 -> println("Input is provided in the range 1 to 5")
        in 6..10 -> println("Input is provided in the range 6 to 10")
        else -> println("none of the above")
    }
}

執行上面示例代碼,得到以下結果 -

It is rainy season

上一篇: Kotlin if運算式 下一篇: Kotlin for迴圈