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

Java 迴圈控制完整指南:for、while、do-while 三大迴圈詳解與最佳實務

     編輯:Java 相關知識

Java 迴圈三大核心結構

迴圈讓程式重複執行程式碼區塊。Java 提供 for、while、do-while 三種迴圈,各有適用場景。

1. for 迴圈:計數器驅動

標準語法

for (初始化; 條件; 更新) {
    // 迴圈主體
}

執行流程

  1. 執行初始化(僅一次)。
  2. 評估條件:true → 執行主體;false → 結束迴圈。
  3. 執行主體。
  4. 執行更新表達式。
  5. 回到步驟 2。

常見變體

// 基本計數
for (int i = 0; i < 10; i++) { ... }

// 多變數初始化/更新
for (int i = 0, j = 10; i < j; i++, j--) { ... }

// 陣列/集合遍歷(傳統)
for (int i = 0; i < arr.length; i++) { ... }

// 增強 for(for-each,Java 5+)
for (String s : list) { ... }

// 無條件無限迴圈(需內部 break)
for (;;) { if (done) break; }

2. while 迴圈:前置條件判斷

語法

while (條件表達式) {
    // 迴圈主體
}

特性:進入前先檢查條件,可能零次執行。

int i = 0;
while (i < 10) {
    System.out.println(i++);
}

// 讀取輸入直到結束
String line;
while ((line = reader.readLine()) != null) {
    process(line);
}

3. do-while 迴圈:後置條件判斷

語法

do {
    // 迴圈主體
} while (條件表達式); // 注意分號

特性:保證至少執行一次,再檢查條件決定是否繼續。

boolean retry = true;
do {
    try { connect(); retry = false; }
    catch (Exception e) { retry = askUserRetry(); }
} while (retry);

4. 三大迴圈比較選擇指南

特性forwhiledo-while
已知迭代次數✓ 最適合✗✗
未知次數、前置檢查△✓ 最適合✗
至少執行一次△✗✓ 最適合
計數器管理內建手動手動
增強 for 遍歷支援不支援不支援

5. 迴圈控制輔助語句

  • break:立即跳出最內層迴圈(或 switch)。
  • continue:跳過本輪剩餘,進入下一輪條件檢查/更新。
  • labeled break/continue:指定跳出/繼續外層迴圈。

6. 現代替代方案:Stream API(Java 8+)

// 傳統 for
for (int i = 0; i < list.size(); i++) process(list.get(i));

// Stream 風格:宣告式、可串流、並行化
list.stream().forEach(this::process);
list.parallelStream().forEach(this::process);

優勢:不可變風格、鏈式操作、易並行、避免 off-by-one 錯誤。

7. 效能與最佳實務

  1. 避免在迴圈內建立大量物件(移到迴圈外)。
  2. 陣列遍歷用傳統 for 或增強 for,效能最佳。
  3. Collection 遍歷優先增強 for 或 forEach。
  4. 大量資料並行處理考慮 parallelStream 或 CompletableFuture。
  5. 無限迴圈必須有明確跳出條件,避免 CPU 100%。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved