ZetCode

Kotlin continue 关键字

最后修改于 2025 年 4 月 19 日

Kotlin 的 continue 关键字提供对循环执行的控制。它跳过当前迭代并移动到下一个迭代。本教程通过实际示例深入探讨了 continue 关键字。

基本定义

Kotlin 中的 continue 关键字用于跳过循环的当前迭代。当遇到时,它会立即跳到下一个迭代。它适用于 forwhiledo-while 循环。

for 循环中的基本 continue

continue 的最简单用法是跳过循环中的特定迭代。在这里,我们跳过从 1 到 10 的范围内的偶数。

BasicContinue.kt
package com.zetcode

fun main() {

    for (i in 1..10) {
        if (i % 2 == 0) {
            continue
        }
        println(i)
    }
}

此代码仅打印 1 到 10 之间的奇数。当 i 为偶数时,continue 语句会跳过迭代的其余部分。输出将是 1, 3, 5, 7, 9。

while 循环中的 continue

continue 关键字在 while 循环中的工作方式类似。在这里,当满足某个条件时,我们跳过迭代。

WhileContinue.kt
package com.zetcode

fun main() {

    var i = 0
    while (i < 10) {
        i++
        if (i in 3..5) {
            continue
        }
        println(i)
    }
}

这个 while 循环跳过数字 3、4 和 5。continue 语句跳回到循环条件检查。输出将是 1, 2, 6, 7, 8, 9, 10。

嵌套循环中的 continue

在嵌套循环中,continue 仅影响包含它的最内层循环。在这里,我们在嵌套结构中演示其行为。

NestedContinue.kt
package com.zetcode

fun main() {

    for (i in 1..3) {
        for (j in 1..3) {
            if (j == 2) {
                continue
            }
            println("i: $i, j: $j")
        }
    }
}

内层循环在 j 等于 2 时跳过迭代。外层循环正常继续。输出显示了 j 从未等于 2 的对。

带标签的 continue

Kotlin 允许标记循环以控制 continue 影响哪个循环。标签使能够从内层循环跳过外层循环中的迭代。

LabeledContinue.kt
package com.zetcode

fun main() {

    outer@ for (i in 1..3) {
        for (j in 1..3) {
            if (i == 2 && j == 2) {
                continue@outer
            }
            println("i: $i, j: $j")
        }
    }
}

ij 都等于 2 时,带标签的 continue 会跳过外层循环的当前迭代。这演示了对嵌套循环行为的精确控制。

do-while 循环中的 continue

do-while 循环也支持 continue。它跳过当前迭代,但之后仍然检查条件。

DoWhileContinue.kt
package com.zetcode

fun main() {

    var i = 0
    do {
        i++
        if (i == 4) {
            continue
        }
        println(i)
    } while (i < 6)
}

此循环打印数字 1 到 6,跳过 4。continue 语句跳转到条件检查,同时保持循环的执行。

when 表达式中的 continue

continue 语句可以在循环内的 when 表达式中使用。这提供了一种干净的方式来处理多个跳过条件。

WhenContinue.kt
package com.zetcode

fun main() {

    for (i in 1..10) {
        when {
            i % 3 == 0 -> continue
            i % 5 == 0 -> continue
            else -> println(i)
        }
    }
}

此代码跳过可被 3 或 5 整除的数字。when 表达式使跳过条件清晰易读。输出显示不可被 3 或 5 整除的数字。

forEach 循环中的 continue

Kotlin 的 forEach 循环不直接支持 continue。相反,我们使用 return@forEach 来实现类似的行为。

ForEachContinue.kt
package com.zetcode

fun main() {

    (1..10).forEach {
        if (it % 2 == 0) {
            return@forEach
        }
        println(it)
    }
}

此示例演示了如何在 forEach 循环中跳过偶数。return@forEach 的作用类似于传统循环中的 continue。输出显示 1 到 10 之间的奇数。

continue 的最佳实践

来源

Kotlin 返回和跳转文档

本教程深入探讨了 Kotlin 的 continue 关键字,展示了它在各种循环结构中的使用。我们探讨了基本用法、嵌套循环、标签以及函数结构中的替代方案。正确使用 continue 可以使循环更高效且富有表现力。

作者

我叫 Jan Bodnar,是一位充满激情的程序员,拥有多年的编程经验。自 2007 年以来,我一直在撰写编程文章。到目前为止,我撰写了 1400 多篇文章和 8 本电子书。我拥有超过八年的编程教学经验。

列出 所有 Kotlin 教程