'for' 循环和取模

'for' loop and modulo

我刚开始学习 JS,但在理解 'for' 循环背后的基础知识时遇到了一些困难。

示例:

for (var number = 3; number % 7 == 0; number++) 

为什么没有意义?为什么一定要这样写:

for (var number = 3; ; number++) {
  if (number % 7 == 0)
    break; 
}

感谢您的帮助!

你已经颠倒了条件。 for 循环的中间部分告诉您循环继续必须满足的条件。您的第二个版本使用相同的条件来决定何时停止。


for (A; B; C) { ... }

可以(大部分)重写为

A;
while (B) {
    ...
    C;
}

(区别在于 for 循环中的 continue 仍然会执行 C 部分。)

最初你的 number 是 3。然后我们执行 while (number % 7 == 0) { ... } 的等效操作,但该条件失败(3 % 7 是 3,而不是 0),因此循环永远不会运行。


你可能想要

for (var number = 3; number % 7 != 0; number++)