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 语句后面的语句。
提示
While 关键字还在 Do...Loop 语句 (Visual Basic)、Skip While 子句 (Visual Basic) 和 Take While 子句 (Visual Basic) 中使用。
规则
**条件的特性。**条件通常通过两个值的比较得到,但也可以是任何计算为 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")