在VB.NET中do while和while有啥区别?
Posted
技术标签:
【中文标题】在VB.NET中do while和while有啥区别?【英文标题】: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"
想猜猜这是做什么的?
【参考方案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
什么都不输出
但是
doecho 1 while (1!=1)
将输出 1 一次。
【讨论】:
我不是在问 do while 和 while end while 之间的区别。我说的是 do while 。 在 C# AFAIK 中没有 do while 这样的事情 不,不是,DO WHILE 在同一行,块在下面。 可以,但是逻辑是一样的。 这是 VB 问题还是 C# 问题。以上是关于在VB.NET中do while和while有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
“Do While”“Loop”和“While”“Wend”循环。有啥不同?