只要给定条件为 True
,就运行一系列语句。
语法
While condition
[ statements ]
[ Continue While ]
[ statements ]
[ Exit While ]
[ statements ]
End While
部件
术语 | 定义 |
---|---|
condition |
必填。
Boolean 表达。
Nothing 如果是condition ,Visual Basic 将它视为 False 。 |
statements |
可选。 以下While 一个或多个语句,每次运行一True 次condition 。 |
Continue While |
可选。 将控制权传输到块的 While 下一次迭代。 |
Exit While |
可选。 将控制转移到块外 While 。 |
End While |
必填。 终止块的定义 While 。 |
注解
While...End While
如果希望无限期重复一组语句,只要条件保持不变True
,请使用结构。 如果你想要更灵活地测试条件或测试条件的结果,你可能更喜欢 Do...循环语句。 如果要重复语句的次数,则 For...下一个语句 通常是更好的选择。
注释
在 While
Do... 中也使用了关键字 ...Loop 语句、 Skip While 子句 和 Take While 子句。
True
如果是condition
,则所有statements
运行直到End While
遇到语句。 然后,Control 返回语句 While
,并 condition
再次检查。 如果 condition
仍 True
存在,则重复此过程。
False
如果是,则控件将传递给语句后面的End While
语句。
该 While
语句始终在启动循环之前检查条件。 当条件保持不变 True
时,循环会继续。
False
如果是condition
首次进入循环,则它甚至不会运行一次。
这 condition
通常是两个值的比较结果,但它可以是计算结果为 布尔数据类型 值(True
或 False
) 的任何表达式。 此表达式可以包含另一个数据类型的值,例如已转换为 Boolean
的数字类型。
可以通过将一个循环置于另一个循环中来嵌套 While
循环。 还可以将不同类型的控件结构嵌套在另一个控件结构中。 有关详细信息,请参阅 嵌套控件结构。
退出 While
Exit While 语句可以提供另一While
种方法来退出循环。
Exit While
立即将控制权转移到语句后面的 End While
语句。
通常在评估某些条件后使用 Exit While
(例如,在结构 If...Then...Else
中)。 如果检测到导致不必要或不可能继续迭代的条件(例如错误值或终止请求),则可能需要退出循环。 当测试可能导致无限循环的条件时,Exit While
可以使用该循环,这是一个循环,可以运行极大甚至无限次数的循环。 然后, Exit While
可以使用该循环转义循环。
可以在循环中的任何While
位置放置任意数量的Exit While
语句。
在嵌套 While
循环中使用时,将 Exit While
控制从最内部的循环转移到下一个更高的嵌套级别。
该 Continue While
语句会立即将控制权传输到循环的下一次迭代。 有关详细信息,请参阅 Continue 语句。
示例 1
在以下示例中,循环中的语句继续运行,直到 index
变量大于 10。
Dim index As Integer = 0
While index <= 10
Debug.Write(index.ToString & " ")
index += 1
End While
Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10
示例 2
下面的示例说明了如何使用 Continue While
和 Exit While
语句。
Dim index As Integer = 0
While index < 100000
index += 1
' If index is between 5 and 7, continue
' with the next iteration.
If index >= 5 And index <= 8 Then
Continue While
End If
' Display the index.
Debug.Write(index.ToString & " ")
' If index is 10, exit the loop.
If index = 10 Then
Exit While
End If
End While
Debug.WriteLine("")
' Output: 1 2 3 4 9 10
示例 3
以下示例读取文本文件中的所有行。 该方法 OpenText 打开文件并返回读取字符的字符 StreamReader 。 在条件中 While
, Peek 该方法 StreamReader
确定文件是否包含其他字符。
Private Sub ShowText(ByVal textFilePath As String)
If System.IO.File.Exists(textFilePath) = False Then
Debug.WriteLine("File Not Found: " & textFilePath)
Else
Dim sr As System.IO.StreamReader = System.IO.File.OpenText(textFilePath)
While sr.Peek() >= 0
Debug.WriteLine(sr.ReadLine())
End While
sr.Close()
End If
End Sub