我实际上是javascript的新手,只是为了学习基础知识,我开始学习codecademy课程。
var i;
for (i = 1; i <= 40; i++) {
console.log("i is now equal to " + i);
}
这是我的问题 - 在这段代码中,当i <= 40
时,它应该打印到41,不是吗?因为for
循环继续运行,直到条件i <= 40
为true
,但为什么它只打印到40呢?
即
当它以40运行时,它会通过递增一次打印到41,不是吗?那为什么它只打印到40?
如果有人也向我解释了代码到底是做什么以及每条线的意义和作用,我将非常感激。感谢。
答案 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 ++)发生在条件之前。