在哪里做...循环没有条件记录?

时间:2015-07-20 10:47:00

标签: .net vb.net specifications

显然,可以创建一个没有条件的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

这是编译器中的错误,文档中的错误还是我看起来不够努力?

3 个答案:

答案 0 :(得分:9)

如有疑问,请参阅language specification,而不是参考:

  

10.9.1虽然......结束时间和行动......循环声明

     

基于布尔表达式的WhileDo循环语句循环。 ... 一种表达   可以放在Do关键字之后或Loop关键字之后,但不是。{   两者之后。 ...... 它   也可以根本不指定表达式;

我的重点

语言参考试图更简单,但可能会丢失必要的细节。语言规范应该与编译器实现的匹配。

答案 1 :(得分:1)

我认为文档中的关键句是

  

您可以使用While或Until指定条件,但不能同时指定两者。

因此,如果要指定条件,则必须使用。没有条件,您不必指定任何内容。

离开条件是完全有效的,将导致无限循环。

答案 2 :(得分:-3)

请参阅文档中的部分部分:

条件可选。 布尔表达式。如果 condition Nothing ,Visual Basic会将其视为 False