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