在do-while循环中使用continue

pim*_*vdb 12 javascript iteration loops continue do-while

MDN声明:

当您使用continue无标签,它会终止最内层的当前迭代while,do-whilefor语句,并继续与下一个迭代循环的执行.

我不确定为什么下面的代码不能像我期望的那样工作.

do {
  continue;
} while(false);
Run Code Online (Sandbox Code Playgroud)

即使while条件是false,我希望它会永远运行,因为continue跳转到块的开始,它会立即continue再次执行,等等.然而,不管怎样,循环在一次迭代后终止.看起来好像continue被忽略了.

如何continue在一个do-while循环的工作?

Kev*_*vin 11

看看这个jsFiddle:http://jsfiddle.net/YdpJ2/3/

var getFalse = function() {
  alert("Called getFalse!");
  return false;
};

do {
  continue;
  alert("Past the continue? That's impossible.");
} while( getFalse() );?
Run Code Online (Sandbox Code Playgroud)

它似乎击中了继续,然后突破该迭代以运行检查条件.由于条件为假,因此终止.


Gra*_*ger 8

continue不会跳过检查while(false),只是忽略括号内的其余代码.


Mun*_*ter 5

Continue 停止执行块中的其余代码并直接跳转到循环的下一次迭代。

既然你在做while(false),就没有下一次迭代


oez*_*ezi 5

continue不会再次开始当前迭代,而是跳到下一个迭代(如 MDN 引用中所述)。

由于某个false条件,没有下一次迭代 - 因此整个循环已完成。