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

只要给定条件为 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 循环。 您还可以将多个不同类型的控制结构嵌套在一个结构中。 有关更多信息,请参见 嵌套的控件结构 (Visual Basic)

  • 将控制转移到循环外。Exit 语句 (Visual Basic) 将控制立即转移到 End While 语句后面的语句。 如果检测到使继续迭代不必要或不可能的条件(如错误值或终止请求),则可能需要退出循环。 可以在 While 循环的任意位置放置任意数量的 Exit 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)

概念

循环结构 (Visual Basic)

嵌套的控件结构 (Visual Basic)