在Java中,使用break
可以跳出循环,默认情况下是跳出最近一层的循环,假如我们要跳出多层循环怎么办呢,Java替我们已经做好了这一点,就是用 循环标签 :
即是对某个循环定义一个名字,然后在 break
后面加上这个名字,当符合 break
条件时,程序就会跳到规定的循环。
out:for (int i = 0; i < 3; i++) {
System.out.println("i = " + i);
for (int j = 0; j < 3; j++) {
System.out.println("--->>> j = " + j);
if (j == 1) break out;
}
}
// 运行结果:
i = 0
--->>> j = 0
--->>> j = 1
out: 相当于一个循环标签,在需要跳出该层循环的时候,break 循环标签即可。Kotlin也是类似
out@ for (i in 0..2) {
println("i = $i")
for (j in 0..2) {
println("--->>> j = $j")
if (j == 1) break@out
}
}
// 运行结果:
i = 0
--->>> j = 0
--->>> j = 1
相对于Java也就是循环标签改变了,out@
同样,在for
循环的continue
关键字中,使用循环标签也是可以的
out@ for (i in 0..2) {
println("i = $i")
outj@ for (j in 0..2) {
println("--->>> j = $j")
for (k in 0..2){
if (k == 1) continue@outj
println("------>>>>>> k = $k")
}
}
}
// 输出结果:
i = 0
--->>> j = 0
------>>>>>> k = 0
--->>> j = 1
------>>>>>> k = 0
--->>> j = 2
------>>>>>> k = 0
i = 1
--->>> j = 0
------>>>>>> k = 0
--->>> j = 1
------>>>>>> k = 0
--->>> j = 2
------>>>>>> k = 0
i = 2
--->>> j = 0
------>>>>>> k = 0
--->>> j = 1
------>>>>>> k = 0
--->>> j = 2
------>>>>>> k = 0
结果有点长,但是可以看到最内层for
也就是k
只输出:
——»»» k = 0