有谁能告诉我为什么这些javascript循环不会运行?
for(var i = -5; i == 0; i++) {
document.write(i);
}
https://jsfiddle.net/0h2p6uod/
for(var i = -5; i == -1; i++) {
document.write(i);
}
https://jsfiddle.net/xb4k0sub/
for(var i = -5; i == 5; i++) {
document.write(i);
}
https://jsfiddle.net/4bbatja9/
然而,所有这些循环都在运行:
for(var i = -5; i < 0; i++) {
document.write(i);
}
for(var i = -5; i < -1; i++) {
document.write(i);
}
for(var i = -5; i < 5; i++) {
document.write(i);
}
答案 0 :(得分:4)
条件部分正在测试true
。如果false
,则循环停止。
for
:
<强>条件强>
在每次循环迭代之前要计算的表达式。如果此表达式的计算结果为true,则执行语句。此条件测试是可选的。如果省略,则条件始终计算为true。如果表达式的计算结果为false,则执行将跳转到for构造后面的第一个表达式。
for(var i = -5; i == 0; i++) {
// ^^^^^^ false -> no loop
答案 1 :(得分:3)
for循环有4个主要部分:
for (initializer; condition; postoperation) {
body;
}
相当于
initializer;
while (condition) {
body;
postoperation;
}
在你的第一个例子中,
for(var i = -5; i == 0; i++) {
document.write(i);
}
条件为i == 0
,因此循环只会在i
为0时继续。但在初始化程序中,您将i
设置为-5
,因此会立即停止。如果您将i == 0
更改为i != 0
,只要i
不为0,它就会继续,因此当它达到0时它将停止。您可以为其他循环执行类似操作。< / p>