显然,可以创建一个没有条件的Do ... Loop
- 循环。以下代码使用.NET 4.5(fiddle)以及Roslyn(fiddle)进行编译:
Public Sub Main()
Do
Console.WriteLine("Hello World")
Exit Do
Loop
End Sub
但是,documentation page上的语法只提供以下两个选项:
Do { While | Until } condition
[ statements ]
[ Continue Do ]
[ statements ]
[ Exit Do ]
[ statements ]
Loop
-or-
Do
[ statements ]
[ Continue Do ]
[ statements ]
[ Exit Do ]
[ statements ]
Loop { While | Until } condition
这是编译器中的错误,文档中的错误还是我看起来不够努力?
答案 0 :(得分:9)
如有疑问,请参阅language specification,而不是参考:
10.9.1虽然......结束时间和行动......循环声明
基于布尔表达式的
While
或Do
循环语句循环。 ... 一种表达 可以放在Do
关键字之后或Loop
关键字之后,但不是。{ 两者之后。 ...... 它 也可以根本不指定表达式;
(我的重点)
语言参考试图更简单,但可能会丢失必要的细节。语言规范应该与编译器实现的匹配。
答案 1 :(得分:1)
我认为文档中的关键句是
您可以使用While或Until指定条件,但不能同时指定两者。
因此,如果要指定条件,则必须使用。没有条件,您不必指定任何内容。
离开条件是完全有效的,将导致无限循环。
答案 2 :(得分:-3)
请参阅文档中的部分部分:
条件可选。 布尔表达式。如果 condition Nothing ,Visual Basic会将其视为 False 。