- 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 - break 和 continue
- 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 条件
我们可以将多个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 when
Kotlin when分支可以作为用大括号括起来的代码块。
示例
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
测验时间 (面试与考试准备)
Q 1 - 关于 Kotlin when 表达式,以下哪项是正确的?
B - Kotlin when 表达式可以替代 if..else if 表达式
答案:D
解释
所有提到的关于 Kotlin when 表达式的语句都是正确的。
答案:A
解释
Kotlin when 的语法和功能与 Java 中的 switch 语句非常相似。
广告