Java跳出多重循环
生活随笔
收集整理的這篇文章主要介紹了
Java跳出多重循环
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
From: https://www.cnblogs.com/fastfn/p/9777067.html
場景:很多的時候需要做到跳出多重循環,而在Java中雖然后goto關鍵字,但是是保留字,并沒有啟用。而在處理分支結構的if...else,switch...case,好像都達不到想要的效果。
作為終止當前代碼的return并不能完成業務需求,能用到的只有break,但是break只能跳出當前的循環。
代碼示例:break
private static void testBreak() {for (int i = 0; i < 3; i++) {for (int j = 0; j < 5; j++) {System.out.println("testBreak==j==" + j);if (j == 2)break;}System.out.println("testBreak==i====>>>" + i);}System.out.println("testBreak======>>>END");}結果:
testBreak==j==0 testBreak==j==1 testBreak==j==2 testBreak==i====>>>0 testBreak==j==0 testBreak==j==1 testBreak==j==2 testBreak==i====>>>1 testBreak==j==0 testBreak==j==1 testBreak==j==2 testBreak==i====>>>2 testBreak======>>>END結論:所有的執行到 j==2 的時候都會終止但是只能跳出當前循環。
?
解決方案一:繼續使用break,但是在添加一個flag作為判斷條件,每次判斷條件的時候都會判斷循環和flag.
代碼:
private static void outloopByBreak() {boolean flag = true;for (int i = 0; i < 3 && flag; i++) {for (int j = 0; j < 5; j++) {System.out.println("outloopByBreak==j==" + j);if (j == 2) {flag = false;break;}}System.out.println("outloopByBreak==i====>>>" + i);}System.out.println("outloopByBreak======>>>END");}結果:
outloopByBreak==j==0 outloopByBreak==j==1 outloopByBreak==j==2 outloopByBreak==i====>>>0 outloopByBreak======>>>END結論:能解決跳出循環的問題,但是是會在內部循環的完成之后繼續往下執行,知道下次判斷才會跳出循環。
?
解決方案二:Java中break有一種用法可以做到類似goto的效果,在需要跳出的循環之前加一個標志之后break 標志;可以做到跳出循環(推薦使用)。
代碼:
private static void outloopByBreakLikeGoto() {flag: for (int i = 0; i < 3; i++) {for (int j = 0; j < 5; j++) {System.out.println("outloopByBreakLikeGoto==j==" + j);if (j == 2) break flag;}System.out.println("outloopByBreakLikeGoto==i====>>>" + i);}System.out.println("outloopByBreakLikeGoto======>>>END");}結果:
outloopByBreakLikeGoto==j==0 outloopByBreakLikeGoto==j==1 outloopByBreakLikeGoto==j==2 outloopByBreakLikeGoto======>>>END結論:做到了類似goto的效果
?
解決方案三:try...catch方式也能做到跳出多重循環的效果
代碼:
private static void outloopByTryCatch() {try {for (int i = 0; i < 3; i++) {for (int j = 0; j < 5; j++) {System.out.println("outloopByTryCatch==j==" + j);if (j == 2) throw new Exception();}System.out.println("outloopByTryCatch==i====>>>" + i);}} catch (Exception e) {System.out.println("====>>outloopByTryCatch跳出");}System.out.println("outloopByTryCatch======>>>END");}結果:
outloopByTryCatch==j==0 outloopByTryCatch==j==1 outloopByTryCatch==j==2 ====>>outloopByTryCatch跳出 outloopByTryCatch======>>>END結論:用拋異常的方式跳出,但是不推薦
總結
以上是生活随笔為你收集整理的Java跳出多重循环的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux学习之01_基础命令介绍
- 下一篇: Java多线程4:synchronize