- Kotlin 教程
- Kotlin - 主页
- Kotlin - 概述
- Kotlin - 环境设置
- Kotlin - 架构
- Kotlin - 基本语法
- Kotlin - 评论
- Kotlin - 关键字
- Kotlin - 变量
- Kotlin - 数据类型
- Kotlin - 运算符
- Kotlin - 布尔值
- Kotlin - 字符串
- Kotlin - 数组
- Kotlin - 范围
- Kotlin - 函数
- Kotlin 控制流程
- Kotlin - 控制流
- Kotlin - if...Else 表达式
- Kotlin - When 表达式
- Kotlin - For 循环
- Kotlin - While 循环
- Kotlin - 中断并继续
- Kotlin 集合
- Kotlin - 集合
- Kotlin - 列表
- Kotlin - 集
- Kotlin - 地图
- Kotlin 对象和类
- Kotlin - 类和对象
- Kotlin - 构造函数
- Kotlin - 继承
- Kotlin - 抽象类
- Kotlin - 接口
- Kotlin - 可见性控制
- Kotlin - 扩展
- Kotlin - 数据类
- Kotlin - 密封类
- Kotlin - 泛型
- Kotlin - 委托
- Kotlin - 解构声明
- Kotlin - 异常处理
- Kotlin 有用资源
- Kotlin - 快速指南
- Kotlin - 有用的资源
- Kotlin - 讨论
Kotlin - When 表达式
考虑一下当您有大量条件需要检查时的情况。虽然您可以使用if..else if表达式来处理这种情况,但 Kotlin 提供了when表达式来以更好的方式处理这种情况。与编写许多if...else if表达式相比,使用when表达式要简单得多且更加简洁。Kotlin when表达式在许多替代方案中评估一段代码,如下例所示。
Kotlin when 会按顺序将其参数与所有分支进行匹配,直到满足某个分支条件。
Kotlin when表达式类似于C、C++ 和 Java 中的switch语句。
例子
fun main(args: Array<String>) {
val day = 2
val result = when (day) {
1 -> "Monday"
2 -> "Tuesday"
3 -> "Wednesday"
4 -> "Thursday"
5 -> "Friday"
6 -> "Saturday"
7 -> "Sunday"
else -> "Invalid day."
}
println(result)
}
当你运行上面的 Kotlin 程序时,它将生成以下输出:
Tuesday
Kotlin when 作为声明
Kotlin when既可以用作表达式,也可以用作语句,就像 Java 中的 switch 语句一样。如果将其用作表达式,则第一个匹配分支的值将成为整个表达式的值。
例子
让我们不使用表达式形式再写一次上面的例子:
fun main(args: Array<String>) {
val day = 2
when (day) {
1 -> println("Monday")
2 -> println("Tuesday")
3 -> println("Wednesday")
4 -> println("Thursday")
5 -> println("Friday")
6 -> println("Saturday")
7 -> println("Sunday")
else -> println("Invalid day.")
}
}
当你运行上面的 Kotlin 程序时,它将生成以下输出:
Tuesday
结合条件
我们可以将多个when条件组合成一个条件。
例子
fun main(args: Array<String>) {
val day = 2
when (day) {
1, 2, 3, 4, 5 -> println("Weekday")
else -> println("Weekend")
}
}
当你运行上面的 Kotlin 程序时,它将生成以下输出:
Weekday
When 条件范围
Kotlin 范围是使用双点创建的..我们可以在in运算符的帮助下检查when条件时使用它们。
例子
fun main(args: Array<String>) {
val day = 2
when (day) {
in 1..5 -> println("Weekday")
else -> println("Weekend")
}
}
当你运行上面的 Kotlin 程序时,它将生成以下输出:
Weekday
when 条件中的表达式
Kotlin when可以使用任意表达式而不是常量作为分支条件。
例子
fun main(args: Array<String>) {
val x = 20
val y = 10
val z = 10
when (x) {
(y+z) -> print("y + z = x = $x")
else -> print("Condition is not satisfied")
}
}
当你运行上面的 Kotlin 程序时,它将生成以下输出:
y + z = x = 20
Kotlin 与代码块的关系
Kotlin中,分支可以作为包含在大括号内的代码块放置。
例子
fun main(args: Array<String>) {
val day = 2
when (day) {
1 -> {
println("First day of the week")
println("Monday")
}
2 -> {
println("Second day of the week")
println("Tuesday")
}
3 -> {
println("Third day of the week")
println("Wednesday")
}
4 -> println("Thursday")
5 -> println("Friday")
6 -> println("Saturday")
7 -> println("Sunday")
else -> println("Invalid day.")
}
}
当你运行上面的 Kotlin 程序时,它将生成以下输出:
Second day of the week Tuesday
测验时间(面试和考试准备)
问题 1 - 以下关于 Kotlin when 表达式的说法哪一项是正确的?
B - Kotlin when 表达式可以用来代替 if..else if 表达式
答案:D
解释
所有提到的关于 Kotlin when 表达式的陈述都是正确的。
答案:A
解释
Kotlin 的语法和功能与 Java 中的 switch 语句非常相似。