break
1 双层循环break外层循环
loopOne@ for (i in 1..10) {
println("i ${i}")
for (j in 1..10) {
if (i == 2 && j == 8) break@loopOne
print("j ${j} ")
}
println()
}
输出日志如下:
2 双层循环break内层循环
for (i in 1..10) {
println("i ${i}")
loopTwo@ for (j in 1..10) {
if (i == 2 && j == 8) break@loopTwo
print("j ${j} ")
}
println()
}
输出日志如下:
从日志中可以看出,仅是 i==2 && j==8 时,j 的循环被break中断,之后 i == 3及以后会继续循环
continue
for (i in 1..10) {
println("i ${i}")
for (j in 1..10) {
if (i == 2 && j == 8) continue
print("j ${j} ")
}
println()
}
输出日志如下:
从日志中可以看出,仅是 i==2 && j==8 这一情况下,仅这次停止,但是会继续后面的循环
总结:
1 break 中断指定循环的所有后续
2 continue 中断满足条件循环的当前一次操作,此次中断后面继续
3 在满足条件的break/continue 前面的代码会执行,后面的代码都不会执行,如下:
for (i in 1..100){
//代码位置1
if (i == 6) break/continue
//代码位置2
}
代码位置1处会执行; 代码位置2处不会执行;