Skip to content

DO...LOOP

来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgDoloop 最后更新: 2021-09-28

用于循环的控制流语句。

语法

Do [{ Until | While } condition]

    [statement block]

Loop

Do

    [statement block]

Loop [{ Until | While } condition]

说明

Do 语句执行以下语句块中的语句,直到/当条件求值为真时停止。

  • Until — 当条件求值为时停止重复。
  • While — 当条件求值为时停止循环。
  • 如果同时省略条件和 Until/While,则循环无限运行。

Exit Do 终止循环;执行从 Loop 语句之后继续。

Continue Do 跳过语句块的其余部分,从 Do 语句恢复执行。

在第一种语法中,条件在首次遇到 Do 语句时检查;如果满足条件,将跳过语句块。在第二种语法中,条件在语句块执行后检查——保证块至少运行一次。

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

示例

示例 1: 统计 1-10 之间的奇数总数

vb
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 += 1
Loop
Print "total odd numbers: " ; total_odd  '' prints '5'

End 0

示例 2: 使用 Exit Do 的无限循环

vb
Dim As Integer n = 1
Dim As Integer total_even = 0
Do
    If( n > 10 ) Then Exit Do
    If( ( n Mod 2 ) = 0 ) Then total_even += 1
    n += 1
Loop
Print "total even numbers: " ; total_even  '' prints '5'

End 0

方言差异

  • -lang qb-lang fblite 中,在 Do..Loop 块内声明的变量具有整个过程的作用域。
  • -lang fb-lang deprecated 中,变量仅在块内可见。

与 QB 的差异

  • 无。

另请参阅

基于 FreeBASIC 官方文档翻译 如有侵权请联系我们删除
FreeBASIC 是开源项目,与微软公司无隶属关系