作为表达式的 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 需要确保无论哪个条件为真,都会返回一个值。
挑战
简单已为你提供以下变量:
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"
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Kotlin 在线编辑器