2016-11-25 70 views
1

谁能告诉我为什么这些JavaScript循环不运行?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); 
} 
+1

好的,提醒我循环初始化中的_second_是什么?那'i == 0'它有什么作用?为什么_you_认为它不起作用? – vlaz

+0

条件只应该为假结束 –

回答

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时它会停止。您可以为其他循环做类似的操作。

4

条件部分正在测试true。如果false,循环停止。

for

条件

的表达式以每次循环迭代之前进行评估。如果此表达式的计算结果为true,则执行语句。这个条件测试是可选的。如果省略,则条件始终为真。如果表达式计算结果为false,则执行跳到for结构之后的第一个表达式。

for(var i = -5; i == 0; i++) { 
//    ^^^^^^ false -> no loop 
+0

+!对于那些把工作放到他们的答案中的人。 :) –