我正在阅读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?
答案 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已经变为三,所以它'跳过'那个赋值运算符并继续。