標(biāo)號與continue,break
可以給語句塊加標(biāo)號賦予它們名稱,標(biāo)號位于語句之前。標(biāo)號只能被continue和break引用。格式如下:
label:statement
語句前只允許加一個標(biāo)號,標(biāo)號后面不能跟大括號。通過用break后加標(biāo)號對處于標(biāo)號中的語句進(jìn)行控制。往往標(biāo)號后是for.while.do-while等循環(huán)。
通過用標(biāo)號,我們可以對外層循環(huán)進(jìn)行控制
下面是用continue控制標(biāo)號
public class Label {
public static void main(String[] args) {
System.out.println("i j");
search:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 50; j++) {
if (j == 3)
continue search;
System.out.println(i+" "+j);
}
}
}
}
輸出如下:
i j
0 0
0 1
0 2
1 0
1 1
1 2
2 0
2 1
2 2
可以看出內(nèi)層循環(huán)并沒有執(zhí)行50次,而到了continue時就跳到最外層循環(huán)去了,continue執(zhí)行后執(zhí)行的是i++.
下面是用break控制標(biāo)號
public class Label {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("i j");
search:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 50; j++) {
if (j == 3)
break search;
System.out.println(i+" "+j);
}
}
}
}
輸出如下:
i j
0 0
0 1
0 2
可以看出內(nèi)層循環(huán)也沒有執(zhí)行50次,而且break后循環(huán)就再也沒執(zhí)行。break跳出的是最外層循環(huán),跳出了標(biāo)號的范圍。
break跳出標(biāo)號對查詢一條記錄來說比較有用,當(dāng)查出自己想要的一條記錄時,就可以跳出循環(huán)了,不用再執(zhí)行了。
其中標(biāo)號的另一個用意就在于讓程序員不去用goto(替代了goto),寫出更安全,干凈的代碼