了解 CONTINUE 如何在 Javascript 中工作?

Posted

技术标签:

【中文标题】了解 CONTINUE 如何在 Javascript 中工作?【英文标题】:Understand how CONTINUE works in Javascript? 【发布时间】:2016-05-23 22:04:25 【问题描述】:

我正在阅读一篇关于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;

continue 语句不会导致它跳过 3 吗?

【问题讨论】:

1, 3, 7, 12 到底是什么? 您正在跳过第 3 次迭代,但第 3 次来自 1 + 2 【参考方案1】:

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

【讨论】:

很好的解释。谢谢!【参考方案2】:

是的。当 i 等于 3 时,跳过循环。 重点是 n,其值为 1、3、7、12

【讨论】:

【参考方案3】:

我忽略了本例中的赋值运算符 (+=)。

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

在第一个循环之后,x=1 和 y=1,我们继续往 x 添加一个 1,现在 = 2。由于赋值运算符 (n += x),我们将 two(x) 添加到 one(y )。

在这个阶段,我们再次循环,操作意识到 x 已变为 3,因此它“跳过”该赋值运算符并继续。

【讨论】:

以上是关于了解 CONTINUE 如何在 Javascript 中工作?的主要内容,如果未能解决你的问题,请参考以下文章

javascrip函数简单介绍

C++ Continue 语句混淆

Promise -------JavaScrip

一文了解Python中的循环(for while break continue 嵌套循环...)

JavaScrip实现:如何写出漂亮的条件表达式

JavaScrip实现:如何写出漂亮的条件表达式