1

我正在 CodeAcademy 上做一个项目,这部分需要一个 for 语句。这是我的代码:

for(i = 1; i <= 20; i++)
console.log(i);

基本上,我只是想知道,既然第二个条件“ i <=20”告诉它何时停止重复代码,为什么它不立即停止。因为 1 小于 20。

我认为它应该是i = 20以及何时i = 20停止。但情况似乎并非如此。这真的让我很困惑。

4

5 回答 5

3

中间的语句不是告诉什么时候停止循环,而是告诉它什么时候应该继续。只要它的计算结果为真,循环就会重复。

于 2012-08-21T05:42:00.877 回答
2

你很困惑,因为你假设第二个参数告诉它何时停止,这是不正确的,它告诉循环运行多长时间,所以在你的情况下,
只要 i 小于或等于 20,它就会告诉循环运行

有关更多信息,请参见http://www.w3schools.com/js/js_loop_for.asp

于 2012-08-21T05:48:52.220 回答
0

for在这里对一个循环进行了很好的总结:

for ( variable = startvalue; variable < endvalue; variable = variable + increment) {
    // code to be executed
}

第一部分是循环计数器/索引应该开始的基线。

中间部分是说while 'variable < endvalue' - 继续循环。

variable = variable + increment写了很多,就像variable++;保持循环向前一样。随着变量的增加。(当然你可以增加/减少,这完全取决于你想要做什么)。

于 2012-08-21T05:46:28.493 回答
0

因为 i 在 i++ 中递增,并且它会发生直到 i++ 达到满足条件 i<=20 的点。

读为

只要 i <=20,就将 i 递增为 i++

于 2012-08-21T05:42:14.400 回答
0

为了帮助您阅读for循环,请考虑始终像这样阅读它们:

for( initialization_expression; termination_expression; increment_expression ) {
  statements;
}
  • intialization_expression 初始化循环;它在循环开始时执行一次。
  • 当 terminate_expression 计算结果为 false 时,循环终止。
  • 在循环的每次迭代之后调用 increment_expression;这个表达式增加或减少一个值是完全可以接受的。

所以要“阅读”它,你可以说:

  1. 执行initialization_expression
  2. 为真则执行,statements否则termination_expression退出
  3. 执行increment_expression
  4. 转到 2。
于 2012-08-21T05:56:18.483 回答