Menu
CoddyTech

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 不需要。

challenge icon

挑战

简单

已为你提供以下变量:

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)
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Kotlin 在线编辑器