when 表达式
本课属于 Coddy Kotlin 学习旅程的“基础知识”单元。第 32 课,共 93 课。
当你需要检查多个特定值时,冗长的 else if 语句链会变得难以阅读。Kotlin 提供了 when 表达式,可以更清晰地将一个值与多种可能性进行匹配。
fun main() {
val day = 3
val dayName = when (day) {
1 -> "Monday"
2 -> "Tuesday"
3 -> "Wednesday"
4 -> "Thursday"
5 -> "Friday"
else -> "Weekend"
}
println(dayName) // 输出:Wednesday
}when 表达式会接收一个值,并将它与每个分支进行比较。找到匹配项后,会返回对应的结果。else 分支会处理与列出的情况都不匹配的任何值。
你也可以用逗号分隔多个值,在同一个分支中进行匹配:
fun main() {
val day = 6
val type = when (day) {
1, 2, 3, 4, 5 -> "Weekday"
6, 7 -> "Weekend"
else -> "Invalid"
}
println(type) // 输出:Weekend
}会生成值的 when 必须穷尽所有情况:每种可能的输入都必须有结果。这些整数示例需要 else,但同时包含 true 和 false 分支的布尔型 when 不需要。
挑战
简单已为你提供以下变量:
val month = 4使用 when 表达式,根据月份数字确定季节,并将结果存储在名为 season 的变量中。
条件:
- 月份
12、1、2应返回"Winter" - 月份
3、4、5应返回"Spring" - 月份
6、7、8应返回"Summer" - 月份
9、10、11应返回"Fall" - 任何其他值都应返回
"Invalid month"
在 when 分支中使用逗号分隔的值,将属于同一季节的月份分组。
打印 season 的值。
亲手试试
fun main() {
val month = 4
// TODO: 在下方编写你的代码
// 使用 when 表达式根据月份判断季节
// 将结果存入名为 'season' 的变量
// 打印结果
println(season)
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Kotlin 在线编辑器