可以給語句塊加標號賦予它們名稱,標號位於語句之前。標號只能被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 j0 0
0 1
0 2
可以看出內層循環也沒有執行50次,而且break后循環就再也沒執行。break跳出的是最外層循環,跳出了標號的范圍。
break跳出標號對查詢一條記錄來說比較有用,當查出自己想要的一條記錄時,就可以跳出循環了,不用再執行了。
標號語句必須緊接在循環的頭部。標號語句不能用在非循環語句的前面。