CodeGym /課程 /JAVA 25 SELF /do-while 迴圈:認識與使用細節

do-while 迴圈:認識與使用細節

JAVA 25 SELF
等級 4 , 課堂 3
開放

1. 認識 do-while 迴圈

想像一下:你在寫一個讓程式猜使用者心裡想的數字的遊戲。你必須至少問一次數字,然後持續重複詢問,直到猜中為止。若是先檢查條件,一般的 while 可能根本不會進入迴圈。

這時 do-while 就派上用場了。與 while 不同,它一定會先執行一次迴圈本體——即使條件一開始就是假的。就像在收銀台不論是否購物都會拿到一塊口香糖一樣。

do-while 的語法

很簡單:在 Java 中就是另一組關鍵字。


do
{
    // 迴圈本體:這段程式碼至少會執行一次
}
while (uslovie);
do-while 迴圈的語法

請注意分號 ; 在最後,位於條件括號之後!在一般的 while 裡沒有,但這裡要加——新手的經典陷阱。

do-while 迴圈的步驟說明

  1. 進入迴圈本體(一定至少一次)。
  2. 檢查條件。
  3. 若條件為真——重複執行本體。
  4. 若條件為假——離開迴圈。

2. 與一般的 while 的差異

回顧一下一般 while 的基本運作方式:

while (uslovie)
{
    // 迴圈本體
}

如果一開始條件為假,迴圈本體一次也不會執行!

現在看看 do-while 的例子:

do
{
    // 迴圈本體
}
while (uslovie);

即使條件一開始就是假的,迴圈本體也會至少執行一次!

用程式碼來說明差異:

// 一般的 while
int count = 0;
while (count > 0)
{
    System.out.println("count = " + count);
    count--;
}
// 不會輸出任何東西

// do-while
int count2 = 0;
do
{
    System.out.println("count2 = " + count2);
    count2--;
}
while (count2 > 0);
// 會輸出 "count2 = 0",即使條件為假!

有時這看起來像是「怪癖」,但在處理使用者輸入與資料驗證時,這正是我們所需要的行為。

3. do-while 的實務應用情境

這個迴圈最常用在哪些場景?

資料驗證

常見情境:請使用者輸入正確的資料(例如密碼不得少於 6 個字元),並在一切正確之前持續重複要求。

String password;
do
{
    System.out.print("請輸入新密碼(至少 6 個字元):");
    password = console.nextLine();
}
while (password.length() < 6);

System.out.println("密碼已接受!");

迴圈本體至少會執行一次——即使使用者立刻輸入了足夠長的密碼。

主控台應用程式中的選單

常見的模式:顯示選單、等待指令,只有收到特殊指令才結束。

String command;
do
{
    System.out.println("選單:");
    System.out.println("1. 顯示問候語");
    System.out.println("2. 退出");
    System.out.print("請選擇動作:");
    command = console.nextLine();

    if (command.equals("1")) 
    {
        System.out.println("你好,世界!");
    }
    else if (!command.equals("2"))
    {
        System.out.println("未知的指令。");
    }
}
while (!command.equals("2"));

System.out.println("再見!");

4. 表格:比較 while 與其他迴圈

迴圈類型 條件檢查時機 本體可能執行次數 適用場合
while
事前 0 次或以上 當重複次數事先未知時
do-while
事後 1 次或以上 當至少執行一次本體很重要時
for
事前 0 次或以上 當迭代次數已知時
1
任務
JAVA 25 SELF, 等級 4, 課堂 3
上鎖
首次啟動遊戲 🎮
首次啟動遊戲 🎮
1
任務
JAVA 25 SELF, 等級 4, 課堂 3
上鎖
輸入 PIN 碼 💳
輸入 PIN 碼 💳
1
任務
JAVA 25 SELF, 等級 4, 課堂 3
上鎖
互動終端機 💻
互動終端機 💻
1
任務
JAVA 25 SELF, 等級 4, 課堂 3
上鎖
註冊新帳號 🔒
註冊新帳號 🔒
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION