if 表达式

Kotlin if 不只是语句,还是表达式——它有返回值:

val age = 18

// 传统写法
if (age >= 18) {
    println("成年人")
} else {
    println("未成年")
}

// 当表达式用(类似三元运算符)
val status = if (age >= 18) "成年人" else "未成年"
println(status)  // 输出:成年人

when 表达式

when Kotlin 版的 switch,但强大得多:

val day = 3

when (day) {
    1 -> println("周一")
    2 -> println("周二")
    3 -> println("周三")
    4, 5 -> println("周四或周五")
    in 6..7 -> println("周末!")
    else -> println("无效日期")
}

when 也可以不带参数,当多个 if-else 用:

val score = 85

val grade = when {
    score >= 90 -> "优秀"
    score >= 80 -> "良好"
    score >= 60 -> "及格"
    else -> "不及格"
}
println(grade)  // 输出:良好

for 循环

遍历集合

val fruits = listOf("苹果", "香蕉", "橘子")

for (fruit in fruits) {
    println(fruit)
}

带索引遍历

for ((index, fruit) in fruits.withIndex()) {
    println("第index+1个:fruit")
}

区间遍历

for (i in 1..5) {
    print("$i ")   // 输出:1 2 3 4 5
}

for (i in 1..5 step 2) {
    print("$i ")   // 输出:1 3 5
}

for (i in 5 downTo 1) {
    print("$i ")   // 输出:5 4 3 2 1
}

while 循环

var count = 0
while (count < 5) {
    println("count = $count")
    count++
}

跳转语句

// break:跳出循环
for (i in 1..10) {
    if (i 5) break
    print("$i ")   // 输出:1 2 3 4
}

// continue:跳过本次
for (i in 1..5) {
    if (i 3) continue
    print("$i ")   // 输出:1 2 4 5
}

本篇小结

要点

说明

if 是表达式

可以返回值,替代三元运算符

when

强大的多分支匹配,支持区间、类型判断

for

遍历集合、区间,支持 stepdownTo

区间 ..

1..5 表示 1 5 的闭区间