在执行时间循环中使用继续

Using continue in a do-while loop

本文关键字:继续 执行时间 循环      更新时间:2023-09-26

MDN声明:

当您使用不带标签的continue时,它会终止最内层封闭whiledo-whilefor语句的当前迭代,并在下一次迭代中继续执行循环。

我不确定为什么以下代码没有按预期工作。

do {
  continue;
} while(false);

即使while条件是 false ,我希望它会永远运行,因为continue跳向块的开头,它会立即再次执行continue,等等。 但是,不知何故,循环在一次迭代后终止。看起来continue被忽略了。

do-while循环中的continue如何工作?

看看这个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() );​

它似乎命中继续,然后脱离该迭代以运行检查条件。 由于条件为 false,因此它将终止。

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

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

由于您正在执行while(false)因此没有下一次迭代

continue不会

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

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

我希望它会永远运行,因为继续跳到开始 块

continue不会跳到块的开头,而是跳到块的末尾。

继续之后,评估循环条件,因为它是假的,循环将终止。

使用 while(true) 获取无限循环。

如果将while(false)替换为while(true),则会得到无限循环。

do {
  continue;
} while(true);

continue跳到块的末尾,在 do-while 循环中,它将执行条件语句。

在您的情况下,您的条件是错误的,因此它会终止循环。如果该条件true,它将在循环开始时继续。