在这种情况下,使用 continue。continue 语句会跳过当前最内层循环的迭代,并将程序控制转移到循环体的末尾。
continue 如何工作?
它几乎总是与 if...else 语句一起使用。例如,
while (testExpression1) {
// codes1
if (testExpression2) {
continue
}
// codes2
}
如果 testExpression2 被评估为 true,则执行 continue,这将跳过该迭代中 while 循环内所有在其之后的代码。

示例:Kotlin continue
fun main(args: Array<String>) {
for (i in 1..5) {
println("$i Always printed.")
if (i > 1 && i < 5) {
continue
}
println("$i Not always printed.")
}
}
运行程序后,输出将是
1 Always printed. 1 Not always printed. 2 Always printed. 3 Always printed. 4 Always printed. 5 Always printed. 5 Not always printed.
当 i 的值大于 1 且小于 5 时,将执行 continue,这将跳过
println("$i Not always printed.")
语句的执行。
但是,由于该语句存在于 continue 语句之前,因此该语句
println("$i Always printed.")
在每次循环迭代中都会被执行。
示例:仅计算正数的总和
下面的程序计算用户输入的最多 6 个正数的总和。如果用户输入负数或零,则将其从计算中跳过。
访问 Kotlin 基本输入输出以了解更多关于如何从用户那里获取输入的信息。
fun main(args: Array<String>) {
var number: Int
var sum = 0
for (i in 1..6) {
print("Enter an integer: ")
number = readLine()!!.toInt()
if (number <= 0)
continue
sum += number
}
println("sum = $sum")
}
运行程序后,输出将是
Enter an integer: 4 Enter an integer: 5 Enter an integer: -50 Enter an integer: 10 Enter an integer: 0 Enter an integer: 12 sum = 31
Kotlin 标签 continue
到目前为止你学到的是无标签形式的 continue,它会跳过最近的封闭循环的当前迭代。通过使用 continue 标签,continue 也可以用来跳过所需循环(可以是外层循环)的迭代。
标签 continue 如何工作?

Kotlin 中的标签以一个 标识符 开始,后面跟着 @。
这里,outerloop@ 是标记在外层 while 循环上的标签。现在,通过使用带标签的 continue(在这种情况下是 continue@outerloop),你可以跳过特定循环在该迭代中的代码执行。
示例:标签 continue
fun main(args: Array<String>) {
here@ for (i in 1..5) {
for (j in 1..4) {
if (i == 3 || j == 2)
continue@here
println("i = $i; j = $j")
}
}
}
运行程序后,输出将是
i = 1; j = 1 i = 2; j = 1 i = 4; j = 1 i = 5; j = 1
标签 continue 的使用通常不被推荐,因为它会使你的代码难以理解。如果你处于必须使用标签 continue 的情况,请重构你的代码,并尝试以不同的方式解决它,使其更具可读性。
Kotlin 中有 3 个结构化跳转表达式:break、continue 和 return。要了解 break 和 return 表达式,请访问
- Kotlin break
- Kotlin 函数