在java中要跳出當前的多重嵌套循環可以有三種方式。
1.定義一個標記變量,在每一層循環中檢查這個變量,如果檢查結果匹配,則逐層跳出每層循環。
boolean flag = false; for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { System.out.println(i, j); if (j == 5) { flag = true; break; } } if (flag) { break; } }
這種方式需要在每一層循環中檢查標記變量,比較麻煩且容易錯漏。
2.通過異常捕獲的方式跳出多層循環,即在想要跳出的位置拋出一個異常,然後用catch捕獲該異常,利用程序異常終止來終止循環。
int i = 0; int j = 0; try { for (i = 0; i < 10; i++) { for (j = 0; j < 10; j++) { if (j == 5) { throw new Exception("跳出多層循環"); } } } } catch (Exception e) { System.out.println(e.getMessage()); } System.out.println(跳出循環時 + "i = " + i + ",j = " + j);
這種方式是利用了異常機制,比較取巧,但是異常捕捉可能會打亂原有程序的正常邏輯,且消耗性能,因此個人強烈不建議使用這種方式。
3.使用帶標籤的break語句跳出循環,即在循環前設置一個標籤變量,然後在需要跳出的循環處使用break標籤變量,從而跳到標籤定義的位置來終止循環。
yanggb1: for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { System.out.println(i, j); if (j == 5) { break yanggb1; } } }
這種方式是個人比較推薦的方式,邏輯清晰又簡單易用。
"好人告訴我方向,壞人教會我成長。"