Kotlin多層循環跳出

​ 在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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章