共用方式為


詳述:使用 Do...While 和 Do...Until 重複動作直到符合特定條件為止

更新:2007 年 11 月

在本課程中,您將學習如何使用 Do...While 和 Do...Until 陳述式,根據特定條件重複執行程式碼。

在上一個課程中,您學會如何使用 For...Next 陳述式,依指定的次數,針對某個程式碼區塊執行迴圈。但是如果程式碼必須重複的次數因特定條件而有所不同時,要怎麼辦?Do...While 和 Do...Until 陳述式可以讓您在特定條件為 True 時重複一段程式碼,或是重複一段程式碼直到特定條件成為 True 為止。

例如,假定您有程式要讓一連串數字相加,但是您永遠都不要數字的總和超過 100。此時您就可以使用 Do...While 陳述式執行相加作業,如下所示:

Dim sum As Integer = 0
Do While sum < 100
  sum = sum + 10
Loop

在此程式碼中,Do While 行會評估變數 sum,以查看是否小於 100:如果是,就會執行下一行程式碼,如果不是,就移到 Loop 之後的下一行程式碼。Loop 關鍵字會命令程式碼回到 DoWhile 行,然後評估 sum 的新值。

試試看!

若要使用 Do...While 陳述式

  1. 在 [檔案] 功能表上,按一下 [新增專案]。

  2. 在 [新增專案] 對話方塊中,按一下 [範本] 窗格中的 [Windows 應用程式]。

  3. 在 [名稱] 方塊中,輸入 DoWhile,再按 [確定]。

    會開啟新的 Windows Form 專案。

  4. 從 [工具箱] 中,將一個 [TextBox] 控制項和一個 [Button] 控制項拖曳到表單上。

  5. 按兩下 [按鈕],開啟 [程式碼編輯器]。

  6. 在 Button1_Click 事件處理常式中,輸入下列程式碼:

    Dim sum As Integer = 0
    Dim counter As Integer = 0
    Do While sum < 100
      sum = sum + CInt(Textbox1.Text)
      counter = counter + 1
    Loop
    MsgBox("The loop has run " & CStr(counter) & " times!")
    
  7. 請按 F5 執行程式。

  8. 在文字方塊中輸入數字,然後按一下按鈕。

    訊息方塊隨即出現,顯示該數字自行相加多少次,才會到達 100。

  9. 按一下 [偵錯] 功能表上的 [停止偵錯] 以結束程式。讓專案保持開啟。我們即將加入其他項目。

Do...Until 陳述式

Do...While 陳述式在條件維持為 True 時會重複執行迴圈,但有時您可能想要程式碼自行重複,一直到條件變成 True 為止。此時您就可以使用 Do...Until 陳述式,如下所示:

Dim sum As Integer = 0
Do Until sum >= 100
  sum = sum + 10
Loop

這段程式碼類似 Do...While 陳述式的程式碼,但是這次程式碼會評估 sum 變數,以查看是否等於或大於 100。

試試看!

這個程序是在「若要使用 Do...While 陳述式」結束時開始。如果您尚未完成「若要使用 Do...While 陳述式」,請先完成再繼續。

若要使用 Do...Until 陳述式

  1. 將下列程式碼加入至 MsgBox 行之下。

    Dim sum2 As Integer = 0
    Dim counter2 As Integer = 0
    Do Until sum2 >= 100
      sum2 = sum2 + CInt(Textbox1.Text)
      counter2 = counter2 + 1
    Loop
    MsgBox("The loop has run " & CStr(counter2) & " times!")
    
  2. 請按 F5 執行程式。

  3. 在文字方塊中輸入數字,然後按一下按鈕。

    第二個訊息方塊隨即出現,顯示該數字自行相加多少次,才會等於或大於 100。

後續步驟

在本主題中,您學會如何使用 Do...While 和 Do...Until 迴圈,條件式地重複執行程式碼。現在,您可以繼續進行下一個課程:讓您的程式在兩種可能性之間選擇:If...Then 陳述式

請參閱

工作

讓程式重複相同動作:利用 For...Next 迴圈進行迴圈處理

參考

Do...Loop 陳述式 (Visual Basic)