Z
ZHANK
控制流程

when 表达式

when 替代 switch、类型匹配、区间匹配、无参 when

when 表达式

when 是 Kotlin 的超级 switch——支持类型匹配、区间、任意表达式。

学完本章你将: 掌握 when 多分支、类型匹配、无参 when。


基本用法

kotlin
val x = 2

when (x) {
    1 -> println("一")
    2 -> println("二")
    3, 4 -> println("三或四")          // 多个值
    in 5..10 -> println("五到十")      // 区间
    else -> println("其他")            // 默认(必须)
}

when 作为表达式

kotlin
val result = when (x) {
    1 -> "一"
    2 -> "二"
    else -> "其他"
}

类型匹配

kotlin
fun describe(obj: Any): String = when (obj) {
    is String -> "字符串: ${obj.length}"
    is Int -> "整数: $obj"
    is Boolean -> if (obj) "真" else "假"
    else -> "未知类型"
}

无参 when

kotlin
val score = 85
val grade = when {
    score >= 90 -> "A"
    score >= 80 -> "B"
    score >= 60 -> "C"
    else -> "D"
}
// 每条分支是布尔条件——更灵活