Posted on 2007-09-18 20:48
流浪韓 閱讀(548)
評(píng)論(0) 編輯 收藏 所屬分類:
J2SE
標(biāo)號(hào)與continue,break
可以給語(yǔ)句塊加標(biāo)號(hào)賦予它們名稱,標(biāo)號(hào)位于語(yǔ)句之前。標(biāo)號(hào)只能被continue和break引用。格式如下:
label:statement
語(yǔ)句前只允許加一個(gè)標(biāo)號(hào),標(biāo)號(hào)后面不能跟大括號(hào)。通過用break后加標(biāo)號(hào)對(duì)處于標(biāo)號(hào)中的語(yǔ)句進(jìn)行控制。往往標(biāo)號(hào)后是for.while.do-while等循環(huán)。
通過用標(biāo)號(hào),我們可以對(duì)外層循環(huán)進(jìn)行控制
下面是用continue控制標(biāo)號(hà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時(shí)就跳到最外層循環(huán)去了,continue執(zhí)行后執(zhí)行的是i++.
下面是用break控制標(biāo)號(hà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)號(hào)的范圍。
break跳出標(biāo)號(hào)對(duì)查詢一條記錄來(lái)說(shuō)比較有用,當(dāng)查出自己想要的一條記錄時(shí),就可以跳出循環(huán)了,不用再執(zhí)行了。
其中標(biāo)號(hào)的另一個(gè)用意就在于讓程序員不去用goto(替代了goto),寫出更安全,干凈的代碼