Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript For循环未达到5_Javascript_Loops_For Loop - Fatal编程技术网

Javascript For循环未达到5

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

我正在研究CodeAcademy,试图学习一些JavaScript,实际上我遇到了这个有趣的事情。请看这里:

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循环的英文翻译为:

  • 将计数器设置为100
  • 如果计数器>0为非真,则结束此块
  • 运行此代码块(在本例中为日志计数器)
  • 将计数器减少5
  • 返回步骤2

  • 所以在这种情况下,如果计数器为零,则它不是>0,因此代码不会返回到步骤2。而在第二种情况下,它是>=0,因此它运行最后一次。

    for循环的英文翻译为:

  • 将计数器设置为100
  • 如果计数器>0为非真,则结束此块
  • 运行此代码块(在本例中为日志计数器)
  • 将计数器减少5
  • 返回步骤2

  • 所以在这种情况下,如果计数器为零,则它不是>0,因此代码不会返回到步骤2。而在第二种情况下,它是>=0,所以它运行最后一次。

    让我们看看这里发生了什么

    当你说
    counter>0
    时,它应该继续,直到严格大于零。由于零不大于自身,因此循环在5处停止


    当您将表达式更改为
    计数器>=0
    时,它会告诉编译器继续,直到计数器大于或等于零,因此它也会继续打印零。

    让我们看看这里发生了什么

    当你说
    counter>0
    时,它应该继续,直到严格大于零。由于零不大于自身,因此循环在5处停止


    当您将表达式更改为
    计数器>=0
    时,它会告诉编译器继续,直到计数器大于或等于零,因此它也会继续打印零。

    ,特别是“每个循环迭代之前要计算的表达式”。特别是“每个循环迭代之前要计算的表达式”所以在这个循环中使用(大于或等于)号实际上是相当正确的?你会推荐那个,还是别的什么?:)你怎么说?关于这一点?在这种情况下使用
    =
    符号是正确的。有多种方法可以使其达到零。最简单的方法是保持
    计数器>=0
    ,否则您可以说
    计数器>-1
    ,因此在这个循环中使用(大于或等于)符号实际上是相当正确的?你会推荐那个,还是别的什么?:)你怎么说?关于这一点?在这种情况下使用
    =
    符号是正确的。有多种方法可以使其达到零。最简单的方法是保持
    计数器>=0
    ,否则可以说
    计数器>-1