带有负数的循环的Javascript

时间:2016-11-25 20:08:02

标签: javascript loops

有谁能告诉我为什么这些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);
}

2 个答案:

答案 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>