1. 程式人生 > 其它 >在java中跳出當前的多重巢狀迴圈

在java中跳出當前的多重巢狀迴圈

在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; } } }

這種方式是個人比較推薦的方式,邏輯清晰又簡單易用。

"好人告訴我方向,壞人教會我成長。"

你要去做一個大人,不要回頭,不要難過。