日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java跳出多重循环

發布時間:2023/12/9 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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跳出多重循环的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。