在VB.NET中,do while和while之间有什么区别?

21
Do While 和只有单独的 While 在 VB.NET 中的区别是什么?
它们在行为上似乎没有任何不同。

1
没有区别。其中一个是因为历史原因而存在。BASIC是一种非常老旧的语言,而Vb.Net仍然保留了一些类似的包袱,例如Mid(MyStr, 2) = "Hi",您想猜猜这个是做什么的吗? - Binary Worrier
3个回答

32

在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

3
完整性考虑:Do While Not … 可以写成 Do Until - Konrad Rudolph
2
说实话,我积极避免使用“Do Until”。我见过太多人不小心在生产代码中引入无限循环。 - valverij
太好了,这就是我想要的解释。 - jaffa
1
我一直使用“Do Until”。从来没有遇到无限循环的问题。只需要确保在循环期间更新被测试的变量即可。如果人们将无限循环放入生产代码中,那么他们就没有进行适当的测试。 - tolsen64

1
DO...WHILE 循环中,循环内的代码至少会被执行一次。
WHILE 循环中,循环内的代码可能会被执行 0 次或更多次。

-6

Do While 先执行再检查是否有效。 While 先检查再执行。

while (1!=1){ echo 1} 

将不会输出任何内容

但是

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

将输出1次。


1
我不是在问do { } while和while { } end while之间的区别。我在谈论的是do while { }。 - jaffa
据我所知,C# 中没有 do while{} 这样的语法。 - Borniet
不是的,DO WHILE在同一行,而块在下面。 - jaffa
是的,但逻辑是相同的。 - Borniet
1
这是一个VB问题还是C#问题。 - dbasnett

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接