在JavaScript中循环 - 任何可以帮助我理解的人?

时间:2012-04-13 15:13:21

标签: javascript for-loop

我实际上是javascript的新手,只是为了学习基础知识,我开始学习codecademy课程。

var i;
for (i = 1; i <= 40; i++) {
  console.log("i is now equal to " + i);
}

这是我的问题 - 在这段代码中,当i <= 40时,它应该打印到41,不是吗?因为for循环继续运行,直到条件i <= 40true,但为什么它只打印到40呢?

当它以40运行时,它会通过递增一次打印到41,不是吗?那为什么它只打印到40?

如果有人也向我解释了代码到底是做什么以及每条线的意义和作用,我将非常感激。感谢。

5 个答案:

答案 0 :(得分:2)

i=1是初始化程序,因此i的第一个值为1.

初始化后,每次迭代回到顶部,i将根据条件i<=40进行检查。在每次完成迭代之后,执行增量i++。在第40次迭代中,i = 40,它传递条件并打印日志。然后(与之前的所有迭代一样)调用i++,其中i最多为41。然后失败 i<=40测试,因此循环不再执行代码块。

结果是控制台打印1到40,然后退出i=41

答案 1 :(得分:1)

它说以下

var i; // DECLARE A NEW VARIABLE NAMED i

// set i to 1 and do things while i is less than or equal to 40
// after this block of code has executed increase the counter by 1

for (i = 1; i <= 40; i++) {     
  console.log("i is now equal to " + i);  // print "i is now equal to <the value of i>"
}

这意味着它将在第一次打印出数字1,每次增加1,直到这个时间i等于41,此时循环将完成(但{之间不再进行操作的意思是41永远不会打印出来)

如果你写了以下内容

for (i = 0; i <= 40; i++) {     
  console.log("i is now equal to " + i);  // print "i is now equal to <the value of i>"
}
除了计数从0开始,再多一次迭代,但是当我变得等于41但它仍然不会打印时,它仍然会退出41

如果你要在循环外做另一个日志语句,你会发现我等于41,但这个值从未在循环体中使用(花括号中的位)

答案 2 :(得分:1)

上次循环运行时,i为40,一旦达到41,它就会退出循环。 i++语句在循环语句之后执行。

var i;
for (i = 1; i <= 40; i++) {
  console.log("i is now equal to " + i);
}

console.log("i is now equal to " + i); // Now it's 41

这就是for循环的工作原理

for ( var i= 0; /* initializer */; 
     i < 40; /* check whether it should run, before running loop statements */ 
     i++ /* happens after the loop statements */ )

答案 3 :(得分:0)

i = 41检查条件语句(i <= 40)并返回false时,循环停止执行其内容。

答案 4 :(得分:0)

在执行for循环内部的代码之前,检查条件,在你的情况下i&lt; = 40。因此,当我到达41时,i&lt; = 40将评估为false,因此不执行该块,并且不打印41。

此外,增量(i ++)发生在条件之前。