首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java break 與 return 在迴圈中的行為差異圖解

     編輯:Java 相關知識

流程控制關鍵字深度解析

break 與 return 都能提早離開迴圈,但影響範圍截然不同。本文透過完整程式碼與輸出結果對比,釐清兩者差異。

測試程式碼

public class BreakVsReturn {
    public static void main(String[] args) {
        System.out.println("=== 正常迴圈 ===");
        normalLoop();
        System.out.println("\n=== break 離開迴圈 ===");
        breakLoop();
        System.out.println("\n=== return 離開方法 ===");
        returnLoop();
    }

    static void normalLoop() {
        for (int i = 1; i <= 5; i++) System.out.print(i + " ");
        System.out.println("→ normal end");
    }

    static void breakLoop() {
        for (int i = 1; i <= 5; i++) {
            if (i == 3) break;
            System.out.print(i + " ");
        }
        System.out.println("→ break end(繼續執行迴圈後代碼)");
    }

    static void returnLoop() {
        for (int i = 1; i <= 5; i++) {
            if (i == 3) return;
            System.out.print(i + " ");
        }
        System.out.println("→ return end(永不會執行)");
    }
}

執行結果對比

=== 正常迴圈 ===
1 2 3 4 5 → normal end

=== break 離開迴圈 ===
1 2 → break end(繼續執行迴圈後代碼)

=== return 離開方法 ===
1 2 → (方法直接結束,不列印 return end)

核心差異總結表

特性breakreturn
作用範圍僅離開當前迴圈/switch離開整個方法
迴圈後代碼會執行不會執行
適用場景提早結束搜尋、驗證失敗找到結果直接回傳、守衛條件
巢狀迴圈僅跳出內層(可配合標籤跳出外層)直接跳出所有層級

進階:標籤配合 break 跳出多層迴圈

outer:
for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        if (i == 1 && j == 1) break outer;
        System.out.println("i=" + i + ", j=" + j);
    }
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved