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