Java中低散,break語句相信大伙都會非常熟悉俯邓,它的作用就是終結(jié)循環(huán),但是普通的不帶標簽的break語句只能終結(jié)最內(nèi)層的循環(huán)熔号。
如果希望能在嵌套非常深的循環(huán)中稽鞭,直接跳出最外層循環(huán),那么就需要用到帶標簽的break語句引镊。
代碼能說明一切朦蕴,請看示例:
------------------------------------------
FIRST_LOOP: for (int i = 0; i < 2; i++) {
SECOND_LOOP: for (int j = 0; j < 2; j++) {
THIRD_LOOP: for (int k = 0; k < 2; k++) {
FORTH_LOOP: for (int l = 0; l < 2; l++) {
System.out.println("count" + count + ": i = " + i + ", j = " + j + ", k = " + k + ", l = " + l);
count++;
if (i == 1 && l == 0) {
break FIRST_LOOP;
}
}
}
}
}
------------------------------------------
很顯然篮条,這是一個四層的嵌套循環(huán),那么要想在滿足指定條件直接結(jié)束整個循環(huán)吩抓,則必須使用帶標簽的break語句涉茧。
上述代碼將打印出如下結(jié)果:
count0: i = 0, j = 0, k = 0, l = 0
count1: i = 0, j = 0, k = 0, l = 1
count2: i = 0, j = 0, k = 1, l = 0
count3: i = 0, j = 0, k = 1, l = 1
count4: i = 0, j = 1, k = 0, l = 0
count5: i = 0, j = 1, k = 0, l = 1
count6: i = 0, j = 1, k = 1, l = 0
count7: i = 0, j = 1, k = 1, l = 1
count8: i = 1, j = 0, k = 0, l = 0
從結(jié)果可以看出,當i == 1 && l == 0的條件滿足后疹娶,循環(huán)就已經(jīng)結(jié)束了伴栓,break語句成功跳到了最外層循環(huán)即FIRST_LOOP循環(huán),并終結(jié)了FIRST_LOOP循環(huán)雨饺。
當然除了終結(jié)FIRST_LOOP循環(huán)外钳垮,break語句也可以終結(jié)SECOND_LOOP循環(huán)或者THIRD_LOOP循環(huán),就看所要實現(xiàn)的邏輯了沛膳。
總結(jié):帶標簽的break語句的最佳實踐就是終結(jié)多層嵌套循環(huán)扔枫。