While...End While 语句 (Visual Basic)

更新:2007 年 11 月

只要给定条件为 True 就运行一系列语句。

While condition
    [ statements ]
    [ Exit While ]
    [ statements ]
End While

各部分说明

  • condition
    必选。Boolean 表达式。如果 condition 为 Nothing,Visual Basic 会将其视为 False。

  • statements
    可选项。跟在 While 后面的一个或多个语句,这些语句将在每次 condition 为 True 时运行。

  • Exit While
    可选项。将控制权传送到 While 块外部。

  • End While
    必选。结束 While 块的定义。

备注

如果要重复一组语句无限次数,请使用 While...End While 结构,只要条件一直为 True。如果想要更灵活地选择在何处测试条件以及针对什么结果进行测试,您可能宁愿使用 Do...Loop 语句 (Visual Basic)。如果想要重复语句一定次数,则 For...Next 语句 (Visual Basic) 通常是较好的选择。

如果 condition 为 True,则所有 statements 将运行,直至遇到 End While 语句。随后控制返回到 While 语句并再次检查 condition。如果 condition 仍为 True,则重复上面的过程。如果为 False,控制将传递到 End While 语句后面的语句。

规则

  • **条件的特性。**条件通常通过两个值的比较得到,但也可以是任何计算结果为 Boolean 数据类型 (Visual Basic) 值(True 或 False)的表达式。这包括已转换为 Boolean 的其他数据类型(如数字类型)的值。

  • **测试条件。**While 语句在开始循环前始终检查该条件。在条件一直为 True 时循环会继续下去。

  • **迭代次数。**如果在第一次进入循环时 condition 就是 False,它甚至一次都不会运行。

  • **嵌套循环。**通过将一个循环放在另一个循环内,您可以嵌套 While 循环。也可以相互嵌套不同种类的控制结构。有关更多信息,请参见嵌套的控制结构

  • 传送到循环外部。Exit 语句 (Visual Basic) 会将控制立即传送到 End While 语句后面的语句。如果检测到使继续迭代不必要或不可能的条件(如错误值或终止请求),则可能需要退出循环。可以将任意数量的 Exit While 语句放在 While 循环中的任何位置。Exit While 通常在计算了某些条件的值后使用,例如,在 If...Then...Else 结构中使用。

  • **无限循环。**Exit While 的一种用途是测试可能导致“无限循环”(即运行次数非常多甚至无限的循环)的条件。如果检测到此类条件,您可以使用 Exit While 来退出循环。有关更多信息,请参见 Do...Loop 语句 (Visual Basic)

示例

此示例使用 While...End While 结构来增加一个计数器变量的值。只要条件的计算结果为 True,循环中的语句就会运行。

Dim counter As Integer = 0
While counter < 20
    counter += 1
    ' Insert code to use current value of counter.
End While
MsgBox("While loop ran " & CStr(counter) & " times")

请参见

概念

循环结构

嵌套的控制结构

参考

Do...Loop 语句 (Visual Basic)

For...Next 语句 (Visual Basic)

Boolean 数据类型 (Visual Basic)

Exit 语句 (Visual Basic)