1. 在最外層循環語句前定義一個標號,循環體內任意位置均可以使用帶有標號的break語句跳出外層循環,結束整個循環。spa
System.out.println("MainClass1 Start..."); ko: for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { System.out.println("i=" + i + ",j=" + j); if (j == 5) break ko; } } System.out.println("MainClass1 End.");
運行結果:code
MainClass1 Start... i=0,j=0 i=0,j=1 i=0,j=2 i=0,j=3 i=0,j=4 i=0,j=5 MainClass1 End.
注:標號必定是加在循環體前面,不能放在帶標號break語句所在的循環體以後;break+標號有點像goto語句,若是循環體包含的代碼片太長,且嵌套多層循環使用了多個標號,會致使代碼不易讀。blog
2. 使用boolean變量作flag,做爲外層循環體結束的條件,賦予變量帶有業務意義的名字。class
System.out.println("MainClass1 Start..."); int arr[][] = { { 1, 2, 3 }, { 4, 5, 6, 7 }, { 9 } }; boolean found = false; for (int i = 0; i < arr.length && !found; i++) { for (int j = 0; j < arr[i].length; j++) { System.out.println("i=" + i + ",j=" + j); if (arr[i][j] == 5) { found = true; break; } } } System.out.println("MainClass1 End.");
運行結果:變量
MainClass1 Start... i=0,j=0 i=0,j=1 i=0,j=2 i=1,j=0 i=1,j=1 MainClass1 End.
注:這個辦法看起來易讀一些,我的感受比第1個好,若是不少層的嵌套循環,須要在外面每一層都加上這個flag做爲結束條件。循環
固然,我相信還有更好的更實用的辦法,你有你牛逼,有就貼出來吧。di