您好,我发现很难理解一些基本的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;
任何帮助清除这一点的人都会受到大量赞赏。
答案 0 :(得分:2)
您的理解听起来是正确的。执行for
语句时,第一个表达式将值赋给i
(在本例中为10
)。第二个表达是比较。如果true
大于或等于i
,它将评估为0
(正如我们将其设置为10)。因为条件求值为true
,所以循环体被执行。之后,运行第三个表达式,递减i
的值,并重复该过程,直到条件求值为false
(i
达到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--)
表示:
i=10
i>=0
则执行。这是“停止”状态。i = i-1
在此示例中,您将不会进入循环,因为重复条件失败。
答案 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的值。