Kotlin when
表示式是一個返回值的條件表示式。 Kotlin when
表示式用於替換switch
語句。 Kotlin when
表示式相當於其他語言(Java,C++,C)中的switch
語句。
下面來看看一下表示式的簡單範例。
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
時,表示式也不是必須要使用的,因為它可以像在其他語言中一樣正常使用。
例如 -
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
可以使用條件塊中包含的多個語句。
例如 -
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多個分支。
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
表示式還檢查條件提供的輸入範圍。 使用..
(雙點)運算子建立範圍。 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