Kotlin continue 关键字
最后修改于 2025 年 4 月 19 日
Kotlin 的 continue 关键字提供对循环执行的控制。它跳过当前迭代并移动到下一个迭代。本教程通过实际示例深入探讨了 continue 关键字。
基本定义
Kotlin 中的 continue 关键字用于跳过循环的当前迭代。当遇到时,它会立即跳到下一个迭代。它适用于 for、while 和 do-while 循环。
for 循环中的基本 continue
continue 的最简单用法是跳过循环中的特定迭代。在这里,我们跳过从 1 到 10 的范围内的偶数。
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 循环中的工作方式类似。在这里,当满足某个条件时,我们跳过迭代。
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 仅影响包含它的最内层循环。在这里,我们在嵌套结构中演示其行为。
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 影响哪个循环。标签使能够从内层循环跳过外层循环中的迭代。
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")
}
}
}
当 i 和 j 都等于 2 时,带标签的 continue 会跳过外层循环的当前迭代。这演示了对嵌套循环行为的精确控制。
do-while 循环中的 continue
do-while 循环也支持 continue。它跳过当前迭代,但之后仍然检查条件。
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 表达式中使用。这提供了一种干净的方式来处理多个跳过条件。
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 来实现类似的行为。
package com.zetcode
fun main() {
(1..10).forEach {
if (it % 2 == 0) {
return@forEach
}
println(it)
}
}
此示例演示了如何在 forEach 循环中跳过偶数。return@forEach 的作用类似于传统循环中的 continue。输出显示 1 到 10 之间的奇数。
continue 的最佳实践
- 谨慎使用:过度使用
continue会使代码更难理解。 - 清晰的条件:确保跳过条件是显而易见的,并且有充分的文档说明。
- 考虑替代方案:有时,重新构建循环可能比使用
continue更清晰。 - 仔细标记:仅在需要控制嵌套循环时使用标签。
- 测试边界情况:验证循环边界和特殊情况下的行为。
来源
本教程深入探讨了 Kotlin 的 continue 关键字,展示了它在各种循环结构中的使用。我们探讨了基本用法、嵌套循环、标签以及函数结构中的替代方案。正确使用 continue 可以使循环更高效且富有表现力。
作者
列出 所有 Kotlin 教程。