为什么要使用"do while"循环?

Sta*_*nni 10 language-agnostic while-loop do-while

我永远不明白为什么使用do while循环是必要的.我理解他们做了什么,这是执行while循环包含的代码而不检查条件是否为真.

但不是以下代码:

do{
    document.write("ok");
}
while(x == "10");
Run Code Online (Sandbox Code Playgroud)

完全相同:

document.write("ok");
while(x == "10"){
    document.write("ok");
}
Run Code Online (Sandbox Code Playgroud)

也许我是非常愚蠢的,并且遗漏了一些显而易见的东西,但是我没有看到在我上面的例子中使用do的好处.

bak*_*kal 18

  • 如您所见,您必须在第二个示例中重复相同的行.当你维护时,你很可能希望这两行是相同的,但你已经重复了.

  • 现在想象一下,这是一个很大的障碍而不是一条线,它不仅会占用不必要的宝贵视觉空间,而且还会更难维持和吸引不一致.


ink*_*dmn 15

您的示例代码错误:

do{
    document.write("ok");
}while(x == "10"){
    document.write("ok");
}
Run Code Online (Sandbox Code Playgroud)

这将是实际的形式:

do {
    document.write("ok");
} while(x == "10");
Run Code Online (Sandbox Code Playgroud)

你在检查条件之前执行内部代码块是正确的,但它不需要像你拥有它那样复制内部代码块.do/while结构(正如您已经说过的)是一种确保一段代码执行1次或更多次而不是0次或更多次的方法(取决于条件).


Dan*_*den 6

什么时候会至少运行一次 - 让你这样做,而...在某些时候需要满足条件才能开始...

var i = 6;
do{
    alert(i);
}while( i < 5)

// alerts 6, but while criteria isn't met so it stops

var i = 6;
while( i < 5) {
  alert(i);
}

// no output - while condition wasn't met
Run Code Online (Sandbox Code Playgroud)


Bet*_*moo 5

关于什么:

do{

   //.....
   // 100000 lines of code!
   //.....

} while(i%10);
Run Code Online (Sandbox Code Playgroud)




当然你不会这样写:

//.....
// 100000 lines of code!
//.....

while(i%10){

   //.....
   // 100000 lines of code!
   //.....

} 
Run Code Online (Sandbox Code Playgroud)



然后你将被迫使用do-while 循环
上帝保佑它!!

编辑:
或者你会使用程序..