VB语句详解——Do...Loop(循环)语句
2008-06-13 22:35:32.0

作者:杜勇

描述:循环语句,有两种变形,一种是当条件为True时,重复执行一个语句块中的命令。另一种重复执行一个语句块中的命令,直到条件变为True时。
一、语法:
Do[{While|Until}condition]
 [statements]
 [Exit Do]
[statements]
Loop
或者可以使用下面这种语法:
Do
 [statements]
 [Exit Do]
 [statements]
Loop[{While|Until}condition]
Do...Loop语句的语法包含下面部分:

部分
描述
While 关键字,可选。当条件为True时,重复执行一个语句块中的命令。
Until 关键字,可选。重复执行一个语句块中的命令,直到条件变为True时。While和Until只能选择一个。
condition 可选参数。数值表达式或字符串表达式,其值为True或False。如果condition是Null,则condition会被当作是False。当condition为True时,执行Do While循环或从Do Until循环跳出。
statements 一条或多条命令,它们将被重复执行。
Exit Do 可选。当statements包含条件且条件满足时退出循环。

二、说明:
  一般来讲,While和Until只能而且必须选择一个。如果不选,将进入无限循环,这时只能用Exit Do语句跳出循环。
  在Do…Loop中可以在任何位置放置任意个数的Exit Do语句,随时跳出Do…Loop循环。Exit Do通常用于条件判断之后,当满足条件后,Exit Do语句将控制权转移到紧接在Loop命令之后的语句。
  Do…Loop也可以采用嵌套方式。如果Exit Do使用在嵌套的Do…Loop语句中,则Exit Do会将控制权转移到Exit Do所在位置的外层循环。
  注意:两种Do…Loop语句运行方式是不同的。
Do[{While|Until}condition]
 [statements]
Loop
  采用这种循环,程序先判断条件,若条件满足,执行语句块中的命令,否则退出循环。
Do
 [statements]
Loop[{While|Until}condition]
  采用这种循环,程序先执行语句块中的命令,然后判断条件,若条件满足,重复执行语句块中的命令,否则退出循环。因此在此循环中,至少要执行一次语句块中的命令。

三、应用举例:
  本示例示范如何使用Do...Loop语句。建立一个标准工程,在窗体上添加两个命令按钮,将下面的程序粘贴过去。
Private Sub Command1_Click()
 Dim Check As Boolean, Counter As Integer
 Check = True: Counter = 0 '设置变量初始值。
 Do '外层循环。
  Do While Counter < 20 '内层循环。
   Counter = Counter + 1 '计数器加一。
   If Counter = 10 Then '如果条件成立。
    Check = False '将标志值设成False。
    Exit Do '退出内层循环。
   End If
  Loop
 Loop Until Check = False '退出外层循环。
 MsgBox "Counter=" & Counter & ";Check=" & Check
End Sub

Private Sub Command2_Click()
 Dim Check As Boolean, Counter As Integer, I As Integer
 Check = True: I = 0 '设置变量初始值。
 Do Until Check = False '外层循环
  Counter = 0
  Do While Counter < 20 '内层循环。
   Counter = Counter + 1 '计数器加一。
  Loop
  I = I + 1
 If I = 10 Then Check = False '如果条件成立。将标志值设成False。
 Loop
 MsgBox "Counter=" & Counter & ";I=" & I & ";Check=" & Check
End Sub
  单击命令按钮1,内层的Do...Loop语句循环到第10次时将标志值设置为False,并用ExitDo语句强制退出内层循环。外层循环则在检查到标志值为False时,马上退出。MsgBox显示“Counter=10;Check=False。”
  单击命令按钮2,内层的Do...Loop语句循环到第20次时退出内层循环。外层的Do...Loop检测I=10时退出外层循环。MsgBox显示“Counter=20;I=10;Check=False。”


文章评论
[以下网友留言只代表其个人观点,不代表中华网的观点或立场]
发表评论
昵 称:
主 页:
内 容:
表 情: