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