Menu
CoddyTech

作为表达式的 if

本课属于 Coddy Kotlin 学习旅程的“基础知识”单元。第 31 课,共 93 课。

你已经看到,如何在行内使用 if,在两个值之间进行选择。但当 if-else 代码块中包含多条语句时,你仍然可以将整个结构用作表达式:每个分支中的最后一个表达式会成为返回值。

fun main() {
    val score = 85
    
    val message = if (score >= 60) {
        val grade = "passing"
        "You got a $grade score!"
    } else {
        val grade = "failing"
        "You got a $grade score."
    }
    
    println(message)  // 输出:You got a passing score!
}

每个分支都可以包含多条语句,但分支中的最后一个表达式会被返回并赋给变量。在这里,每个代码块最后一行的字符串都会成为 message 的值。

这也适用于 else if 链:

fun main() {
    val temperature = 25
    
    val description = if (temperature > 30) {
        "Hot"
    } else if (temperature > 20) {
        "Warm"
    } else {
        "Cool"
    }
    
    println(description)  // 输出:Warm
}

将 if 用作表达式时,必须包含 else 分支:Kotlin 需要确保无论哪个条件为真,都会返回一个值。

challenge icon

挑战

简单

已为你提供以下变量:

val hours = 45

使用包含多个语句的 if 表达式,判断工人的薪酬状态并创建一条消息。

使用 if 表达式创建变量 payStatus:

  • 如果 hours 大于 40:
    • 创建变量 overtime,其值为 hours - 40
    • 最后一个表达式应为 "Overtime: $overtime extra hours"
  • 否则:
    • 创建变量 remaining,其值为 40 - hours
    • 最后一个表达式应为 "Regular: $remaining hours until overtime"

输出 payStatus 的值。

亲手试试

fun main() {
    val hours = 45
    
    // TODO:在下方编写你的代码
    // 使用 if 表达式创建变量 payStatus
    // 如果 hours > 40:创建变量 overtime,并返回 "Overtime: $overtime extra hours"
    // 否则:创建变量 remaining,并返回 "Regular: $remaining hours until overtime"
    
    
}
quiz icon自我测试

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

基础知识中的所有课

自己练习: Kotlin 在线编辑器