详细了解:使用 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 窗体项目随即打开。

  4. 将一个“文本框”控件和一个“按钮”控件从“工具箱”中拖动到窗体上。

  5. 双击该“Button”控件以打开代码编辑器。

  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)