【发布时间】:2022-01-21 02:00:08
【问题描述】:
我希望你们做得很好 我正在学习 Javascript 我了解了“继续”,我们可以在循环中使用它进行迭代。 但这是我无法得到的
先看一下代码:
let k = 1
do {
if (k === 9) {
k++;
continue;
}
console.log(k + 1);
k++;
} while (k < 15);
当console.log 中为(k+1) 时,打印9 并错过10。 不明白为什么?
但是当使用这段代码时
let k = 1
do {
if (k === 9) {
k++;
continue;
}
console.log(k);
k++;
} while (k < 15);
console.log 中为 (k) 时,不打印 9,打印 10。
不明白什么时候用simple(k)和什么时候用(k+1)背后的逻辑?
所以这就是我所理解的。如果K=1。控制台.log(k+1)。 2 已打印。然后由于k ++。 k 变为 2 并且条件被测试并且因为它是真的所以它将移动到另一个循环。这种情况还在继续。对吧?
谢谢
【问题讨论】:
-
当
k是9时,我认为在这两个示例中,continue 都会遗漏控制台日志。我看到的唯一区别是日志输出的内容 -
这是大多数语言中的标准循环语法,带有 for 循环。请参阅
continue的文档以了解它的工作原理以及如何使用它。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… - 当您看到continue时,您会看到一条指示立即 停止并继续进行下一次迭代。循环体中不再有代码运行。 -
k==9时会继续过去的记录。因此,如果它记录k+1,它不会记录9+1=10,当它记录k时,它不会记录9=9。 -
诚然,continue 的名字有点可疑,它通常用于 continue 越过循环;不知道这一点的人很可能会认为这意味着继续循环,但我想这将是多余的,并且与它在这种情况下的含义相反!
-
@Barmar continue 停止执行当前迭代中的语句并继续前进。我不明白的是,在代码 1 中,当 k===9 时,不应该打印 9,它应该向前移动到 10。它就是这样完成的。但是在代码 2 中,打印了 9 但没有打印 10,所以这让我感到困惑,为什么在代码号 1 中没有打印 9 而在代码号 2 中打印了 9。
标签: javascript do-while continue