在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