当 (k+1) 用作 k(变量)值时,为什么循环中的 "continue" 函数会抛出错误?

Why "continue" function in loop throws error when (k+1) is used as k (variable) value?

希望你们一切顺利 我在学习Javascript 我了解了“continue”,我们可以在循环中使用它进行迭代。 但这是我无法得到的

先看看代码:

let k = 1

do {
  if (k === 9) {
    k++;
    continue;
  }
  console.log(k + 1);
  k++;
} while (k < 15);

当在console.log中是(k+1)then时,打印了9,漏掉了10。 不明白为什么?

但是当使用这个代码时

let k = 1

do {
  if (k === 9) {
    k++;
    continue;
  }
  console.log(k);
  k++;
} while (k < 15);

当inconsole.log为(k)then时,不打印9,打印10。

看不懂简单(k)和(k+1)时的逻辑?

这就是我的理解。即如果K=1。 console.log(k+1)。 2 被打印出来。然后由于 k++。 k 变成 2 并且条件被测试并且因为它是真的所以它将移动到另一个循环。这还在继续。对吗?

谢谢

那是因为在您的逻辑中,如果 k === 9,您将 +1 添加到 k,然后将其记录到控制台,这使得 9 不可见。您应该记录它,然后添加 k++.

continue 跳过循环体的其余部分并开始循环的下一次迭代(如果 while 条件仍然为真)。

在这两个代码片段中,您在 k == 9 时执行此操作,因此它会跳过调用 console.log().

的代码

在第一个版本中,它记录 k+1。所以当 k == 9 它跳过打印 10.

在第二个版本中,它记录 k。所以当 k == 9 它跳过打印 9.

在第一个示例中,您要记录 k+1 的值,因此,当 k 为 1 时,它记录值 2 (1+1),当 k 为 2 时,它记录值 3 (2 +1) 一直到 k 为 8 并记录 9 (8+1)。当 k 为 9 时,k 仍然递增并且 k+1 为 10 但这不会被记录,因为循环的其余部分被跳过。

在第二个示例中,您正在做完全相同的事情,但登录的是 k 而不是 k+1 的值,因此所有记录的值都少 1。

"...你也可以在 console.log(k+1)"[=17= 下解释一下 k++ ]

在这两种情况下,k 的值每次在块末尾、console.log 之后或在 if (k === 9) 块内 [=16= 之前的循环中递增 1 ]