【Java基礎】-多重For迴圈的兩種跳出方式
阿新 • • 發佈:2018-11-02
先來小段Demo,自己跑一下就能看到效果了:
public static void main(String[] args) { List<String> listA = new ArrayList<String>(); List<String> listB = new ArrayList<String>(); List<String> listC = new ArrayList<String>(); listA.add("1"); listA.add("2"); listA.add("3"); listB.add("一"); listB.add("二"); listB.add("三"); listC.add("one"); listC.add("two"); listC.add("three"); // 第一種方式:迴圈前面加標識,break相應的標識 System.out.println("第一種方式:迴圈前面加標識,break相應的標識"); A: for (int i = 0; i < listA.size(); i++) { System.out.println("A列表:" + listA.get(i)); if (listA.get(i).equals("2")) { break A; } B: for (int j = 0; j < listB.size(); j++) { System.out.println("B列表:" + listB.get(j)); if (listB.get(j).equals("二")) { break B; } C: for (int k = 0; k < listC.size(); k++) { System.out.println("C列表:" + listC.get(k)); if (listC.get(k).equals("two")) { break C; } } } } // 第二種方式:宣告變數,在迴圈中改變變數值 System.out.println("第二種方式:宣告變數,在迴圈中改變變數值"); boolean flagA = true; for (int i = 0; i < listA.size() && flagA; i++) { System.out.println("A列表:" + listA.get(i)); if (listA.get(i).equals("2")) { flagA = false; } boolean flagB = true; for (int j = 0; j < listB.size() && flagB; j++) { System.out.println("B列表:" + listB.get(j)); if (listB.get(j).equals("二")) { flagB = false; } boolean flagC = true; for (int k = 0; k < listC.size() && flagC; k++) { System.out.println("C列表:" + listC.get(k)); if (listC.get(k).equals("two")) { flagC = false; } } } } }
控制檯輸出效果如下:
第一種方式:迴圈前面加標識,break相應的標識
A列表:1
B列表:一
C列表:one
C列表:two
B列表:二
A列表:2
第二種方式:宣告變數,在迴圈中改變變數值
A列表:1
B列表:一
C列表:one
C列表:two
B列表:二
C列表:one
C列表:two
A列表:2
B列表:一
C列表:one
C列表:two
B列表:二
C列表:one
C列表:two
從上面的效果中可以看出來兩種方式都可以跳出你想要跳出的迴圈。
不同點在於:
第一種方式:在執行break+標識後直接跳出標識的迴圈;
第二種方式:在下次迴圈開始前才會跳出你想要跳出的迴圈。
用的時候可以根據自己的業務做選擇,當然兩種迴圈式可以達到相同的效果的,有興趣的小夥伴可以自己試一下。