今天在看一個開源項目的時候,無意中看到一個未見過的文法和用法,於是查了一下資料和寫了一下demo來驗證,結果如下
懂得c++的朋友都知道goto這個關鍵字吧,這個關鍵字讓我們可以在程式中比較靈活地跳轉;當然都不推薦使用他,但是他也有他特定的用途,比如跳出多重迴圈的時候就特別有用,直接上代碼:
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
init();
}
private static void init() {
label:
for (int i = 0; i < 50; i++) {
for (int j = 0; j < 30; j++) {
for (int a = 0; a < 30; a++) {
if (a == 15)
break label;
System.out.println("third======" + a);
}
System.out.println("second======" + j);
}
System.out.println("first======" + i);
}
System.out.println("end======");
}
}
輸出結果是:
third======0
third======1
third======2
third======3
third======4
third======5
third======6
third======7
third======8
third======9
third======10
third======11
third======12
third======13
third======14
end======
可以看到,再迴圈開始前定了label後,在內部迴圈中使用break label就可以跳出所有的迴圈,然後執行最外出迴圈之後的代碼,還有一個用法就是continue label。
而continue label是跳出所有迴圈回到最外層迴圈的開始處重新開始迴圈代碼的執行