控制流程
约 565 字大约 2 分钟
2025-05-20
条件与循环
if
用于条件判断,根据条件执行不同的代码块,与 js 等使用一致。
// 作为普通条件判断
if (条件) {
// 条件为 true 时执行
} else {
// 条件为 false 时执行(可选)
}
// 作为表达式
val max = if (条件) 成立结果 else 不成立结果
for
用于遍历 集合、区间或数组,没有传统的 for (i=0; i<N; i++)
结构。
for (元素 in 集合/区间) {
// 对每个元素执行操作
}
还提供了 索引、步长、倒序的使用:
// 遍历数组
val fruits = arrayOf("Apple", "Banana", "Orange")
for (fruit in fruits) {
println(fruit)
}
// 遍历数字区间(1到5,包含5)
for (i in 1..5) {
println("数字: $i")
}
// 遍历索引和元素
for (i in fruits.indices) {
println("第 $i 个水果是 ${fruits[i]}")
}
// 或者使用 withIndex
for ((index, value) in fruits.withIndex()) {
println("索引 $index: $value")
}
// 带步长(step)和倒序(downTo)
for (i in 10 downTo 3 step 2) { // 倒序到0,步长为2
println(i) // 输出 10,8,6,4
}
while
while
和 do-while
当循环条件满足时会持续处理它们的主体。 它们之间的区别在于条件检查的时间:
while
先检查体条件,满足则处理主体。do-while
先处理主体,在检查条件,满足则继续处理主体。
因此 do-while
至少会处理一次主体。
var count = 3
// 先判断条件,再执行
while (count > 0) {
println("剩余次数:$count")
count--
}
// 输出:
// 剩余次数:3
// 剩余次数:2
// 剩余次数:1
// do-while:先执行一次,再判断条件
do {
println("至少执行一次")
} while (false)
when
when
是 Kotlin
中用于多条件分支判断 的关键字,类似于其他语言中的 switch
,但不需要 break
。
when (变量) {
值1 -> { 执行代码块1 }
值2 -> { 执行代码块2 }
...
else -> { 默认执行代码块 } // 可选
}
返回与跳转
Kotlin
有三种结构化跳转表达式:
return
默认从最直接包围它的函数或者匿名函数返回。break
终止最直接包围它的循环。continue
继续下一次最直接包围它的循环。