Kotlin 迴圈控制 (For, While)

Kotlin 的迴圈語法非常直覺,尤其是 for 迴圈,它主要用來歷遍 (Iterate) 任何提供了 Iterator 的物件(如 Range, Array, Collection)。

For 迴圈

Kotlin 沒有傳統 C 語言風格的 for (i=0; i<10; i++)。取而代之的是 for-in

遍歷範圍 (Range)

// 1 到 5 (包含 5)
for (i in 1..5) {
    println(i) // 1, 2, 3, 4, 5
}

// 1 到 4 (不包含 5)
for (i in 1 until 5) {
    println(i) // 1, 2, 3, 4
}

倒數與間隔

// 倒數:6, 4, 2, 0
for (i in 6 downTo 0 step 2) {
    println(i)
}

遍歷陣列/集合

val fruits = listOf("Apple", "Banana", "Cherry")

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

// 同時要 Index 和 Value
for ((index, value) in fruits.withIndex()) {
    println("Item at $index is $value")
}

While 與 Do-While

這部分跟 Java 與 C 語言完全一樣。

var x = 5
while (x > 0) {
    println(x)
    x--
}

// do-while 保證至少執行一次
do {
    val y = retrieveData()
} while (y != null) 

跳出迴圈 (break 與 continue)

Kotlin 支援標準的 break (跳出整個迴圈) 和 continue (跳過本次)。

標籤 (Labels)

在巢狀迴圈中,有時候我們想直接跳出 外層 迴圈。 Kotlin 允許你定義標籤 (label@)。

outer@ for (i in 1..100) {
    for (j in 1..100) {
        if (i * j > 1000) break@outer // 直接結束最外層迴圈
    }
}