Menu
CoddyTech

使用范围的 when 表达式

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

有时,你需要检查一个值是否落在某个范围内,而不是是否与特定值匹配。when 表达式通过将 in 关键字与范围结合使用来支持这种检查。

fun main() {
    val score = 85
    
    val grade = when (score) {
        in 90..100 -> "A"
        in 80..89 -> "B"
        in 70..79 -> "C"
        in 60..69 -> "D"
        else -> "F"
    }
    
    println(grade)  // 输出:B
}

in 关键字会检查值是否存在于指定范围内。这里,85 在 80..89 范围内,所以等级是“B”。这比为每个条件都写 score >= 80 && score <= 89 简洁得多。

你还可以在同一个 when 表达式中将范围与特定值组合起来:

fun main() {
    val age = 17
    
    val category = when (age) {
        0 -> "Newborn"
        in 1..12 -> "Child"
        in 13..19 -> "Teenager"
        else -> "Adult"
    }
    
    println(category)  // 输出:Teenager
}

处理连续的数值条件时,使用范围能让代码更易读。这类情况常见于评分系统、年龄分类等场景。

challenge icon

挑战

简单

编写一个名为 getTicketPrice 的函数,它接收 age,并根据年龄类别返回票价。

使用带范围的 when 表达式来确定合适的票价。

条件:

  • 年龄 0 到 3:返回 0(免费)
  • 年龄 4 到 12:返回 10(儿童票价)
  • 年龄 13 到 17:返回 15(青少年票价)
  • 年龄 18 到 64:返回 25(成人票价)
  • 年龄 65 及以上:返回 12(老年票价)

参数:

  • age(Int):此人的年龄

返回值:以整数(Int)表示的票价

亲手试试

fun getTicketPrice(age: Int): Int {
    // 在这里编写代码
}
quiz icon自我测试

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

基础知识中的所有课

自己练习: Kotlin 在线编辑器