Java do-while循環:先執行後判斷,避免循環體不執行

在Java編程中,我們經常需要重複執行一段代碼,比如打印多個數字、計算總和等。這時候循環結構就派上用場了。常見的循環有while循環、do-while循環和for循環。今天我們重點學習do-while循環,它的獨特之處在於先執行循環體,再判斷是否繼續循環,這能確保循環體至少被執行一次,避免了循環體可能不執行的問題。

一、do-while循環的語法結構

do-while循環的基本格式如下:

do {
    // 循環體:需要重複執行的代碼
    語句1;
    語句2;
    // ...
} while (條件表達式); // 注意這裏有分號

關鍵點:
1. 先執行循環體:無論條件是否成立,都會先運行大括號裏的代碼。
2. 後判斷條件:執行完循環體後,纔會判斷while後面的條件表達式是否爲true
- 如果爲true,繼續執行循環體;
- 如果爲false,則結束循環。

二、爲什麼需要do-while循環?

while循環的執行順序是先判斷條件,再執行循環體。如果初始條件不滿足,循環體一次都不會執行。而do-while循環通過“先執行、後判斷”的邏輯,確保循環體至少執行一次,這在以下場景中非常實用:
- 需要先處理一次數據(比如讀取用戶輸入,即使用戶輸入的內容不符合條件,也先執行一次交互);
- 必須完成某件事至少一次(比如檢查文件是否存在,即使文件不存在也需要先嚐試讀取一次)。

三、執行流程示例

我們通過一個簡單的例子來理解do-while的執行過程:輸出1到5的數字

int i = 1; // 初始化循環變量
do {
    System.out.println("當前數字:" + i); // 循環體
    i++; // 更新循環變量(關鍵:否則會無限循環)
} while (i <= 5); // 判斷條件:i是否小於等於5

執行步驟:
1. 先執行循環體:輸出當前數字:1,然後i變爲2;
2. 判斷條件i <= 5(2 <= 5)爲true,繼續循環;
3. 執行循環體:輸出當前數字:2i變爲3;
4. 重複步驟2-3,直到i變爲6:
- 執行循環體輸出當前數字:5i變爲6;
- 判斷條件i <= 5(6 <= 5)爲false,循環結束。

四、經典應用場景:用戶輸入交互

假設我們需要讓用戶輸入一個整數,只有當輸入的數字爲負數時才退出程序。即使用戶第一次輸入的就是負數,do-while也會先執行一次循環體,這能保證交互邏輯的完整性。

import java.util.Scanner; // 導入Scanner類用於接收用戶輸入

public class DoWhileExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num;

        do {
            System.out.print("請輸入一個整數(負數將退出程序):");
            num = scanner.nextInt(); // 接收用戶輸入

            if (num >= 0) {
                System.out.println("你輸入了正數,繼續輸入吧!");
            } else {
                System.out.println("你輸入了負數,程序即將退出。");
            }
        } while (num >= 0); // 條件:num >=0 時繼續循環

        scanner.close(); // 關閉Scanner
    }
}

執行過程:
- 第一次輸入:無論用戶輸入正數(如5)還是負數(如-3),都會先執行循環體(打印提示信息);
- 若輸入負數(如-3),判斷條件num >=0false,循環結束;
- 若輸入正數(如5),判斷條件爲true,繼續循環,直到用戶輸入負數。

五、常見錯誤與注意事項

  1. 忘記更新循環變量:如果循環體中沒有更新循環變量(如i++),循環條件會永遠成立,導致無限循環
   // 錯誤示例:無限循環
   int i = 1;
   do {
       System.out.println(i);
       // 缺少i++,i永遠是1,條件i < 100永遠成立
   } while (i < 100);
  1. 分號不能省略do-while循環的while後面必須有分號,否則編譯報錯。

  2. 避免條件永遠成立:確保循環條件最終會變爲false,例如用戶輸入的終止條件必須能被觸發。

六、總結

do-while循環的核心是“先執行,後判斷”,這使得循環體至少被執行一次。相比while循環,它更適合以下場景:
- 需要確保循環體至少執行一次(如用戶輸入驗證);
- 不確定初始條件是否滿足,但必須先處理一次數據(如讀取文件、檢查數據有效性)。

掌握do-while循環的語法和執行邏輯,能幫助你更靈活地處理重複操作,避免循環體不執行的問題。記住:循環變量的更新和條件的正確性是避免無限循環的關鍵

小夜