在带有条件的循环中使用stop

时间:2012-08-08 09:50:04

标签: javascript

您好,我发现很难理解一些基本的JavaScript

我写了一个从10倒数到0的循环,我正在使用console.log将该值打印到控制台。在循环内部,if语句用于检查数字是否为0,如果是,则控制台.log打印“Blast Off!”而不是数字。

这是我的工作代码:

for (i=10; i>=0; i--;) 
{
if (i === 0)    
    {
    console.log("Blast Off!");
    }
else 
    {
    console.log(i);
    }
}

然而,我迫切想要理解的是for循环的停止:

i>=0;

这是否有效地说明i是否大于或等于零,然后每次循环递减i,然后在达到零时停止?

相反,当我将for循环代码更改为下面显示的内容时,这是否有效地说明i是否小于或等于零,然后逐步递减循环i达到零的时间?

如果更改停止,循环不打印的原因是什么?这是因为i 从不保存的值小于或等于零,这意味着循环不会运行?

 i<=0;

任何帮助清除这一点的人都会受到大量赞赏。

8 个答案:

答案 0 :(得分:2)

您的理解听起来是正确的。执行for语句时,第一个表达式将值赋给i(在本例中为10)。第二个表达是比较。如果true大于或等于i,它将评估为0(正如我们将其设置为10)。因为条件求值为true,所以循环体被执行。之后,运行第三个表达式,递减i的值,并重复该过程,直到条件求值为falsei达到0时)。

通过将条件更改为i <= 0,它将第一次评估为false,因此循环体将永远不会执行。

ECMAScript规范的“the for statement”部分详细说明了确切的行为。

答案 1 :(得分:2)

想象一下楼梯,10级。

--
  | i = 10
   --
     | i = 9
      --
        | i = 8
         --
           | i = 7
            --
              | i = 6
               --
                 | i = 5
                  --
                    | i = 4
                     --
                       | i = 3
                        --
                          | i = 2
                           --
                             | i = 1
                              --
                                | i = 0

想象一下,你正爬下楼梯,在脑海里,你下意识地想:“直到我走到最底层,我才会一直走下去。”

与for循环类似:

for (i=10; i >= 0; i--)

这说,我从图像中描绘的最顶端,第10步开始,然后每次(或迭代)i--向下爬一步,然后每次下台后,检查,“我已经在楼梯的底部吗?不行吗?继续前进”,那是你检查时的i >= 0

希望能帮助你摆脱绝望;)

答案 2 :(得分:2)

我认为你的问题是循环中的分号:

这是你的代码:

for (i=10; i>=0; i--;)

试试这个:

for (i=10; i>=0; i--)

也许这就是循环不打印的原因。

答案 3 :(得分:1)

for (i=10; i>=0; i--)表示:

  1. i=10
  2. 开头
  3. 如果不是i>=0则执行。这是“停止”状态。
  4. 每次循环后
  5. 执行:i = i-1
  6. 在此示例中,您将不会进入循环,因为重复条件失败。

答案 4 :(得分:1)

你好,首先是“i = 10”和

i>=0

是循环的条件。因此,每当i大于或等于零时,循环就会继续返回。由于您使用的是i--,因此当i变为负值时,小于零,循环将停止。

如果您使用

i<=0

循环的条件为false,因此它不会进入循环来执行括号内的代码

答案 5 :(得分:0)

是的,如果你要改变

for (i=10; i>=0; i--)

for (i=10; i<=0; i--)

第一个条件检查为false,因为i不小于或等于0,所以它不会循环。

答案 6 :(得分:0)

在进入块之前检查条件,但是在增加之后。第一次交互将跳过增量。第一次不满足条件时,整个循环将完全停止。

因此,如果您使用i&lt; = 0,则不满足条件,并且for将停止。 如果你想跳过零,你应该有条件i> 0。

答案 7 :(得分:0)

您理解正确,只要i大于或等于0,for循环中的i&gt; = 0就会告诉您运行循环。

i--在循环的每次迭代中递减i的值。