Kotlin continue表达式,continue
构造跳过循环的当前迭代并将控制流跳转到循环结束以进行下一次迭代。continue
通常与if
表达式一起使用,以跳过指定条件的循环的当前迭代。在本指南中,我们将学习cintinue
构造和标签。
Kotlin continue
循环示例
fun main(args : Array<String>){
for (n in 1..5){
println("before continue, Loop: n")
if(n==2||n==4)
continue
println("after continue, Loop:n")
}
}
输出:
正如您在输出中看到的那样println("after continue, Loop: $n")
语句没有为循环迭代n == 2
和n == 4
执行,因为在这些迭代中我们使用了此语句之前的continue
,它跳过了这些n
值的迭代。
但是,您可以观察到在每次迭代时执行的println("before continue, Loop: $n")
语句,因为它在遇到Continue
之前执行。
基于此,您可以得出结论continue
跳过迭代,但它无法跳过continue
之前遇到的语句。一旦遇到continue
,控制流就跳转到循环的末尾,跳过其余的语句。
让我们再看一个例子
Kotlin continue
:显示偶数
fun main(args : Array<String>){
for (n in 1..10){
if(n%2!=0)
continue
println("$n")
}
}
输出:
continue
标签
直到现在我们已经学会了continue
。让我们了解continue
标签。这些标签很酷,基本上它们在我们处理嵌套循环时给予我们更多的控制。
让我们举一个例子,我们首先不使用continue
标签,然后我们将采用与continue
标签相同的例子。
没有continue
标签的嵌套循环示例
在这个例子中,我们有一个嵌套的for
循环,我们没有使用标签。当我们不使用标签时,我们没有任何控制,一旦遇到continue
,就会跳过内循环的当前迭代。
fun main(args : Array<String>){
for (x in 'A'..'D'){
for (n in 1..4){
if (n==2||n==4)
continue
println("x andn")
}
}
}
输出:
A and 1
A and 3
B and 1
B and 3
C and 1
C and 3
D and 1
D and 3
带有continue
标签的嵌套循环示例
您可以在上面的示例输出中看到,对于n
值 2 和 4,内循环将跳过迭代。让我们说我们想跳过外部for
循环的迭代,我们可以在continue
标签的帮助下这样做。
fun main(args : Array<String>){
mtloop@ for (x in 'A'..'D'){
for (n in 1..4){
if (n==2||n==4)
continue @myloop
println("x andn")
}
}
}
输出:
A and 1
B and 1
C and 1
D and 1
基本上这里发生的是,一旦n
值达到 2,控制流就会因为标签而跳到外循环的末尾,并且每次迭代都会发生这种情况。continue
标签的语法非常简单,因为您只需要在标签后附加@
符号,并且需要在continue
语句后附加相同的名称,如上例所示。