在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”循环。有啥不同?

do ... while (0) — 它有啥用? [复制]

“while 1”和“while True”有啥区别?

java操作数据库时在while循环里面new一个对象和在while循环外面new一个对象有啥区别?

JS中 do while循环问题

sql server中do while循环怎么写