fun main() {
// outer@ 是一個(gè)標(biāo)簽 可以取任何名稱
outer@ for (row in 1..3) {
println("row: $row")
for (column in 1..3) {
if (row == 2 && column == 2) {
println()
continue@outer // @outer 對(duì)應(yīng)上面的 outer@
}
print("$column")
}
println()
}
}
打印結(jié)構(gòu):
row: 1
123
row: 2
1
row: 3
123
即當(dāng) row == 2 && column == 2
時(shí)直接跳到了標(biāo)簽的位置漓藕。
對(duì)比一下不使用標(biāo)簽的情況
fun main() {
for (row in 1..3) {
println("row2: $row")
for (column in 1..3) {
if (row == 2 && column == 2) {
println()
continue
}
print("$column")
}
println()
}
}
打印結(jié)果:
row2: 1
123
row2: 2
1
3 // 此處因?yàn)闆]有使用標(biāo)簽進(jìn)行跳轉(zhuǎn) 內(nèi)部循環(huán)繼續(xù)執(zhí)行完
row2: 3
123
知識(shí)點(diǎn):
-
1..3
產(chǎn)生一個(gè)range - for語(yǔ)句中使用標(biāo)簽
labelName@ ... continue@labelName
, 這個(gè)類似于C語(yǔ)言中的goto
語(yǔ)句進(jìn)行標(biāo)記