【问题标题】:Whats the difference between do while and while in VB.NET?在VB.NET中do while和while有什么区别?
【发布时间】:2013-04-10 02:29:53
【问题描述】:

Do While 语句是循环块中的第一行,与 VB.NET 中的单个 While 有什么区别?

它们似乎没有提供任何行为差异。

【问题讨论】:

  • 没有区别。一个是出于遗留原因。 BASIC 是一种非常古老的语言,而 Vb.Net 仍然带有一些包袱,例如Mid(MyStr, 2) = "Hi"想猜猜这是做什么的?

标签: vb.net loops while-loop do-while


【解决方案1】:

在 Visual Basic 中这些是相同的:

    Dim foo As Boolean = True

    While Not foo
        Debug.WriteLine("!")
    End While

    Do While Not foo
        Debug.WriteLine("*")
    Loop

这些不是; do 执行一次:

    Dim foo As Boolean = True

    While Not foo
        Debug.WriteLine("!")
    End While

    Do
        Debug.WriteLine("*")
    Loop While Not foo

【讨论】:

  • 为了完整起见:Do While Not … 可以写成Do Until
  • 老实说,我积极避免Do Until。我也看到人们可能会不小心将无限循环扔到生产代码中。
  • 太好了,这就是我想要的解释。
  • 我一直使用“直到”。从来没有遇到过无限循环的问题。您只需要确保在循环期间更新正在测试的变量。如果人们将无限循环放入生产代码中,那么他们就没有正确地对其进行测试。
【解决方案2】:

DO...WHILE中,循环内的代码至少执行一次

WHILE循环中,循环内的代码被执行0次或多次

【讨论】:

    【解决方案3】:

    Do While 首先执行,然后检查是否有效。 While 先检查后执行。

    while (1!=1){ echo 1} 
    

    什么都不输出

    但是

    do{echo 1} while (1!=1) 
    

    将输出 1 一次。

    【讨论】:

    • 我不是在问 do { } while 和 while { } end while 之间的区别。我说的是 do while { }。
    • 在 C# AFAIK 中没有 do while{} 这样的事情
    • 不,不是,DO WHILE 在同一行,块在下面。
    • 可以,但是逻辑是一样的。
    • 这是 VB 问题还是 C# 问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 2011-01-16
    • 2014-10-03
    • 1970-01-01
    • 2013-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多