了解CONTINUE在Javascript中的工作原理?

时间:2016-05-23 22:04:26

标签: javascript loops iteration continue

我正在阅读MDN website about loops and iteration上的文章。我试图理解为什么我们从以下结果得到1,3,7,12:?

var i = 0;
var n = 0;
while (i < 5) {
 i++;
  if (i == 3) {
  continue;
  }
 n += i;
}

不会继续声明导致它跳过3?

3 个答案:

答案 0 :(得分:2)

continue做的是立即跳到循环的顶部。从本质上讲,它会忽略跟随它的所有内容,然后继续下一次迭代。

举一个简单的例子,这里是如何只打印范围内的偶数:

for (var i = 0; i < 10; i++) {
  // If i isn't even, skip to the next iteration
  if (i % 2 !== 0) {
    continue;
  }
  console.log(i);
}

因此,您不会在运行总和中添加3。相反,你基本上得到:

var i = 0;
var n = 0;
i++; // 1
n += i; // 1

i++; // 2
n += i; // 3

i++; // 3
// skip 3

i++; // 4
n += i; // 7

i++; // 5
n += i; // 12

答案 1 :(得分:0)

是。当i等于3时,跳过循环。 焦点更像是n,其值为1,3,7,12

答案 2 :(得分:0)

我在这个例子中忽略了赋值运算符(+ =)。

当我们循环时,它的进展如下:

在第一个循环之后,x = 1且y = 1,我们前进并向x添加另一个1,现在= 2.由于赋值运算符(n + = x),我们将两个(x)加到一个(y) )。

在这个阶段,我们再次循环,操作意识到x已经变为三,所以它'跳过'那个赋值运算符并继续。