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

Java 迴圈結構完全指南:for、while、do-while、增強型 for 與跳轉控制

     編輯:Java 程式設計入門

Java 迴圈結構完全指南:for、while、do-while、增強型 for 與跳轉控制

迴圈讓相同操作重複執行。Java 提供三種基本迴圈 + 增強型 for (JDK 1.5)。


while 迴圈:前測試

while (布林運算式) {
    // 迴圈體
}

條件為 true 才進入,可能零次執行。

範例

int x = 10;
while (x < 20) {
    System.out.println("x = " + x);
    x++;
}
// 輸出 10~19

do-while 迴圈:後測試

do {
    // 迴圈體
} while (布林運算式);

至少執行一次,再判斷條件決定是否繼續。

範例

int x = 10;
do {
    System.out.println("x = " + x);
    x++;
} while (x < 20); // 同樣輸出 10~19

for 迴圈:計數器控制

for (初始化; 布林運算式; 更新) {
    // 迴圈體
}

執行流程:初始化 → 判斷 → 執行體 → 更新 → 判斷…

範例

for (int x = 10; x < 20; x++) {
    System.out.println("x = " + x);
}

for 變體

  • 多重初始化/更新:for (int i=0, j=10; i
  • 無限迴圈:for (;;) 等同 while(true)
  • 初始化/更新可為空,但分號不可省略。

增強型 for (foreach) - JDK 1.5+

for (元素型別 變數 : 陣列或 Iterable) {
    // 迴圈體
}

優點: 語法簡潔,避免索引越界。限制: 僅順序讀取,無法修改陣列元素本身(基本型別修改副本),無索引可用。

範例

int[] nums = {10, 20, 30, 40, 50};
for (int n : nums) System.out.print(n + ","); // 10,20,30,40,50,

String[] names = {"James", "Larry", "Tom"};
for (String name : names) System.out.print(name + ","); // James,Larry,Tom,

跳轉控制:break / continue

break:跳出整個迴圈 (或 switch)

for (int x : nums) {
    if (x == 30) break; // 直接結束迴圈
    System.out.println(x);
}
// 輸出 10, 20

continue:跳過本次迭代,進入下一次

for (int x : nums) {
    if (x == 30) continue; // 跳過 30
    System.out.println(x);
}
// 輸出 10, 20, 40, 50

標籤跳轉

巢狀迴圈中跳出外層:

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 + "," + j);
    }
}

迴圈選擇指南

迴圈類型適用場景
for已知迴圈次數、計數器需求
while未知次數、前置條件判斷
do-while至少一次、選單驅動程式
foreach遍歷陣列/Collection、唯讀

效能與避坑提醒

  • foreach 底層用迭代器,陣列直接索引較快;極度熱點路徑可用傳統 for。
  • 避免在迴圈條件中呼叫昂貴方法:for (int i=0; i → 先存 int n = list.size()。
  • continue 在 for 中執行更新運算式,在 while/do-while 直接判斷條件。
  • 無限迴圈需確保內部有 break 或 return 跳出條件。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved