You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin中when条件分支如何不使用if-else执行多条语句?

Kotlin when 分支多行逻辑实现方案

Kotlin 原生完整支持 when 分支执行多行逻辑,无需退回到 if-else 语句实现。

报错原因

单分支需要执行多行代码时,若不用大括号包裹代码块,编译器仅会将箭头后第一行代码识别为当前分支的执行内容,后续代码会被判定为 when 结构外的非法语法,直接触发编译错误。

正确写法

用大括号 {} 包裹对应分支的多行逻辑即可,修正后的代码如下:

when(studentAnswer2){
    quizAnswer2 -> points += 25
    quizAnswer2 - 1 -> {
        points += 20 
        println("The answer $studentAnswer2 is within 1 point of $quizAnswer2")
    }
    quizAnswer2 + 1 -> {
        points += 20
        println("The answer $studentAnswer2 is within 1 point of $quizAnswer2")
    }
}

额外特性说明

  • 大括号包裹的分支代码块无行数限制,可编写任意合法Kotlin逻辑,和普通代码块规则一致
  • 若将when作为表达式使用(即把when的执行结果赋值给变量),分支代码块的最后一行表达式会自动作为该分支的返回值
  • 多个分支执行逻辑完全相同时,可直接将分支条件用逗号分隔合并,减少重复代码,优化后写法如下:
when(studentAnswer2){
    quizAnswer2 -> points += 25
    quizAnswer2 - 1, quizAnswer2 + 1 -> {
        points += 20
        println("The answer $studentAnswer2 is within 1 point of $quizAnswer2")
    }
}

内容的提问来源于stack exchange,提问作者Khalil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 12:27:13