Kotlin,when表达式是返回值的条件表达式时。 Kotlin,when表达式替换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作为表达式时,不强制使用,它可以像以其他语言一样使用。
例如
fun main(args: Array<String>){
</span><span class="kwd">var</span><span class="pln"> number </span><span class="pun">=</span><span class="pln"> </span><span class="lit">4</span><span class="pln">
</span><span class="kwd">when</span><span class="pun">(</span><span class="pln">number</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="lit">1</span><span class="pln"> </span><span class="pun">-></span><span class="pln"> println</span><span class="pun">(</span><span class="str">"One"</span><span class="pun">)</span><span class="pln">
</span><span class="lit">2</span><span class="pln"> </span><span class="pun">-></span><span class="pln"> println</span><span class="pun">(</span><span class="str">"Two"</span><span class="pun">)</span><span class="pln">
</span><span class="lit">3</span><span class="pln"> </span><span class="pun">-></span><span class="pln"> println</span><span class="pun">(</span><span class="str">"Three"</span><span class="pun">)</span><span class="pln">
</span><span class="lit">4</span><span class="pln"> </span><span class="pun">-></span><span class="pln"> println</span><span class="pun">(</span><span class="str">"Four"</span><span class="pun">)</span><span class="pln">
</span><span class="lit">5</span><span class="pln"> </span><span class="pun">-></span><span class="pln"> println</span><span class="pun">(</span><span class="str">"Five"</span><span class="pun">)</span><span class="pln">
</span><span class="kwd">else</span><span class="pln"> </span><span class="pun">-></span><span class="pln"> println</span><span class="pun">(</span><span class="str">"invalid number"</span><span class="pun">)</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
}
输出:
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
无涯教程可以使用用逗号分隔的多个条件分支。当无涯教程需要运行多种选择时需要运行相同的逻辑时使用它。
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
当表达式也检查条件时提供的输入范围。使用范围使用..(双点)运算符。在运算符中用于检查值是否属于范围。
例如:
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") } }
输出:
Input is provided in the range 6 to 10