when语句
When语句取代 java中的 case语句
default语句变成了有意义的 else语句
特征
- 每个分支的判断条件不一定是常量,可以是表达式
- 一个分支可以有多个判断条件
- 对于 条件表达式的类型没有要求
- 不用break也会跳出
var str = "Hello World";
var code = 'o';
when (code) {
str[4] ->
println("START")
str[7] ->
println("END");
}
when表达式
when表达式必须要有else语句
每个分支最后都会定义一条语句作为when表达式的返回值
var code = 'A';
var str = when (code) {
'A' -> {
println("START");
"YES";
}
'B' -> {
println("END");
"NO";
}
}
println(str);
when分支处理范围
var x = 10;
when (x) {
in 1 .. 20 -> {
println("YES");
}
in 21 .. 100-> {
println("NO");
}
}