Javascript For循环未达到5
我正在研究CodeAcademy,试图学习一些JavaScript,实际上我遇到了这个有趣的事情。请看这里:Javascript For循环未达到5,javascript,loops,for-loop,Javascript,Loops,For Loop,我正在研究CodeAcademy,试图学习一些JavaScript,实际上我遇到了这个有趣的事情。请看这里: for(var counter = 100; counter > 0; counter = counter - 5){ console.log(counter); } 在这里,我告诉循环通过打印计数器编号,只要计数器大于0,但是它只会打印100..95..90等,直到5。 我知道如何解决这个问题,只需在大于号后面加一个简单的等号。 像这样: for(var counter
for(var counter = 100; counter > 0; counter = counter - 5){
console.log(counter);
}
在这里,我告诉循环通过打印计数器编号,只要计数器大于0,但是它只会打印100..95..90等,直到5。
我知道如何解决这个问题,只需在大于号后面加一个简单的等号。
像这样:
for(var counter = 100; counter >= 0; counter = counter - 5){
console.log(counter);
}
但我很想知道为什么这不会有不同的效果??我的意思是它以5结尾,5比0大,不是吗??当我把等号放在大于号之前时,它确实应该输出一些未定义的数字,因为即使计数器等于0,它也应该循环。我头疼。
请有人解释一下,谢谢:)不,一旦它达到零,就不应该继续循环。循环的工作方式如下:
for (initialization; condition; increment) {
body;
}
它按以下顺序执行这些操作:
initialization
loop {
condition true? then:
body
increment
else:
stop loop
}
因此,当计数器达到零时,条件将为false,并且不会在计数器值为“0”时执行主体,它将简单地停止。但是,当您输入>=时,该条件在该点仍然为真。否,一旦它达到零,就不应继续循环。循环的工作方式如下:
for (initialization; condition; increment) {
body;
}
它按以下顺序执行这些操作:
initialization
loop {
condition true? then:
body
increment
else:
stop loop
}
因此,当计数器达到零时,条件将为false,并且不会在计数器值为“0”时执行主体,它将简单地停止。但是,当您输入>=,此时条件仍然为真。for循环的英文翻译为:
所以在这种情况下,如果计数器为零,则它不是>0,因此代码不会返回到步骤2。而在第二种情况下,它是>=0,因此它运行最后一次。for循环的英文翻译为:
所以在这种情况下,如果计数器为零,则它不是>0,因此代码不会返回到步骤2。而在第二种情况下,它是>=0,所以它运行最后一次。让我们看看这里发生了什么 当你说
counter>0
时,它应该继续,直到严格大于零。由于零不大于自身,因此循环在5处停止
当您将表达式更改为
计数器>=0
时,它会告诉编译器继续,直到计数器大于或等于零,因此它也会继续打印零。让我们看看这里发生了什么
当你说counter>0
时,它应该继续,直到严格大于零。由于零不大于自身,因此循环在5处停止
当您将表达式更改为
计数器>=0
时,它会告诉编译器继续,直到计数器大于或等于零,因此它也会继续打印零。,特别是“每个循环迭代之前要计算的表达式”。特别是“每个循环迭代之前要计算的表达式”所以在这个循环中使用(大于或等于)号实际上是相当正确的?你会推荐那个,还是别的什么?:)你怎么说?关于这一点?在这种情况下使用=
符号是正确的。有多种方法可以使其达到零。最简单的方法是保持计数器>=0
,否则您可以说计数器>-1
,因此在这个循环中使用(大于或等于)符号实际上是相当正确的?你会推荐那个,还是别的什么?:)你怎么说?关于这一点?在这种情况下使用=
符号是正确的。有多种方法可以使其达到零。最简单的方法是保持计数器>=0
,否则可以说计数器>-1