首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 多重迴圈(巢狀迴圈)執行機制圖解與程式碼範例

     編輯:程式設計綜合問答

Java 中的多重迴圈(Nested Loop)是指在一個迴圈內部再嵌套另一個迴圈。最常見的是雙層 for 迴圈,外層控制行,內層控制列,執行順序為外層執行一次,內層完整跑完一圈。

執行流程圖解

for (int i = 0; i < 3; i++) {      // 外層:i = 0, 1, 2
    for (int j = 0; j < 2; j++) {  // 內層:j = 0, 1
        System.out.println("i=" + i + ", j=" + j);
    }
}
// 輸出順序:
// i=0, j=0
// i=0, j=1   ← 內層跑完一圈
// i=1, j=0
// i=1, j=1   ← 內層跑完一圈
// i=2, j=0
// i=2, j=1   ← 內層跑完一圈

關鍵觀念

  • 內層迴圈的初始化、條件判斷、遞增每次外層迴圈進入時都會重新執行。
  • 若內層使用 break,僅跳出內層;若需跳出外層,需使用標籤 break outer;。
  • 時間複雜度為 O(n*m),資料量大時需注意效能。

實務應用場景

  • 二維陣列/矩陣操作(矩陣乘法、轉置)
  • 排列組合生成(雙重迴圈產生座標對)
  • 巢狀資料結構遍歷(如樹狀結構的層級處理)

進階:多重迴圈優化技巧

  1. 將不變的計算移出內層迴圈(Loop-invariant code motion)。
  2. 若順序無關,考慮平行串流 IntStream.range(0, n).parallel().forEach(...)。
  3. 避免在內層進行昂貴的 I/O 或資料庫操作,改為批次處理。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved