Do...Loop
 
控制流程语句进行循环

语法

Do [ { Until | While } condition ]
[ statement block ]
Loop
or
Do
[ statement block ]
Loop [ { Until | While } condition ]

说明

Do语句执行以下statement block 中的语句,直到condition (如果有的话)计算结果为true。

如果使用Until,当condition 评估为true时,Do语句将停止重复statement block .While关键字具有相反的效果,如果condition 评估为false,则停止循环。如果condition UntilWhile都被省略,Do语句将无限期循环。

如果在statement block 内遇到ExitDo语句,则循环将被终止,并在封闭的Loop语句之后立即恢复执行。如果遇到ContinueDo语句,则会跳过statement block 的其余部分,并在Do语句中继续执行。

在第一个语法中,当首次遇到Do语句时检查condition ,如果符合condition ,则将跳过statement block .在第二个语法中,condition 最初被选中after statement block 被执行。这意味着statement block 始终保证执行一次at least .

condition 可以是计算为False(零)或True(非零)的任何有效表达式。

例子

在这个例子中,Do循环用于将奇数的总数从1到10进行计数。将重复until ,其n > 10 条件得到满足:
Dim As Integer n = 1                            ''要检查的号码
Dim As Integer total_odd = 0                    ''运行总数奇数
Do Until( n > 10 )
  If( ( n Mod 2 ) > 0 ) Then total_odd += 1    ''如果n是奇数,则添加到总数(剩余数除以2)
  n += 1
Loop
Print "总奇数:" ; total_odd         '' prints '5'

End 0


在这里,使用无限DO循环来计数总数。我们通过If...Then语句将循环中的条件检查放置在n > 10 成为真时退出循环:
   Dim As Integer n = 1                            ''要检查的号码
   Dim As Integer total_even = 0                   ''运行总数偶数
   Do
      If( n > 10 ) Then Exit Do                    '' exit if we've扫描了我们的10个数字
   
      If( ( n Mod 2 ) = 0 ) Then total_even += 1   ''如果n是偶数,则加上总数(没有余数除以2)
      n += 1
   Loop
   Print "总偶数:" ; total_even       '' prints '5'

   End 0


方言差异

与QB差别

  • 没有

参考