假设您正在使用循环。有时希望跳过循环的当前迭代。
在这种情况下,请使用continue
。在continue
构建跳过封闭循环的当前迭代中,并且该程序的控制跳转到循环体的端部。
如何继续工作?
它几乎总是与if … else构造一起使用。例如,
while (testExpression1) {
// codes1
if (testExpression2) {
continue
}
// codes2
}
如果将testExpression2评估为true
, 则将 continue
执行continue
并在该循环之后跳过while
循环内的所有代码。
示例:Kotlin继续
fun main(args: Array) {
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
执行continue
,从而跳过执行
println("$i Not always printed.")
声明。
但是,声明
println("$i Always printed.")
在循环的每次迭代中执行,因为此语句存在于continue
构造之前。
示例:仅计算正数之和
下面的程序计算用户输入的最多6个正数的总和。如果用户输入负数或零,则将其从计算中跳过。
访问Kotlin基本输入输出以了解有关如何从用户那里获取输入的更多信息。
fun main(args: Array) {
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
跳过所需循环(可以是外部循环)的迭代。
如何标记继续工作?
Kotlin中的标签以标识符开头,后跟@
。
在这里, outerloop @是在外部while循环上标记的标签。现在,通过continue
与标签( continue@outerloop
在这种情况下),你可以跳过该次迭代的具体循环的代码的执行。
示例:标记为继续
fun main(args: Array) {
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
,重构代码,并试图解决它以不同的方式,以使其更具可读性。
有3只结构跳表现在科特林: break
, continue
和return
。要了解break
和return
表达式,请访问:
- 科特林休息
- Kotlin 函数