循环增量之间的差异

时间:2016-11-28 12:24:15

标签: javascript

在阅读博客时,我遇到了一个无限循环的情况,但我不明白为什么,如果我们尝试使用代码

for (a=5; a < 10; a+1){
console.log(a);
}

这是一个无限循环,但是下面它运行良好

for (a=5; a < 10; a++){
console.log(a);
}

主要区别是什么?

7 个答案:

答案 0 :(得分:8)

部分

for (a = 5; a < 10; a + 1) {
//                  ^^^^^

不会更改a

您需要作业

for (a = 5; a < 10; a = a + 1) {
//                  ^^^

如果您使用a++,则会解析为a = a + 1

运营商++increment operator

答案 1 :(得分:3)

This is an example a++添加一个将结果存储在a

a只需向a + 1添加一个,,不用将结果存储在a中。 (例如,您可以将结果值用于其他内容:a。)

b = a + 1的“更新”(增量)部分中,您想要修改循环变量。所以你想要for(或a++),而不是++a

¹具体来说,a + 1后缀增量)读取a++的值,向a添加一个,然后生成a先前的值是表达式的结果。因此a向我们留下了a = 1; b = a++;b == 1

还有a == 2前缀增量),其中一个添加到++a然后使用{{1}中的结果值作为表达式的结果。因此a向我们留下了aa = 1; b = ++a;

这有点直观地表示:在b == 2中,a == 2是第一个,增量在之后,实际上在a++增加之前它的结果值为a 。在a中,首先是增量,然后是++a,这也表示我们得到的结果。

答案 2 :(得分:1)

问题是a + 1部分。 a + 1只返回a + 1的值。它不会影响到任何东西。 a ++实际上返回a然后递增它。

答案 3 :(得分:0)

第一个循环没有递增一个变量a+1,正确的是a=a+1

for (a=5; a < 10; a=a+1){
console.log(a);
}

答案 4 :(得分:0)

a ++表示a = a + 1 而a + 1不会将值存储在a中 这意味着一个遗嘱仍然永远是

答案 5 :(得分:-1)

这是因为它说:  a是0;只要它小十,就会循环;那么1(因为0 + 1)

您需要添加<script src="https://rawgit.com/kangax/fabric.js/master/dist/fabric.js"></script> <script src="https://seikichi.github.io/tmp/PDFJS.0.8.715/pdf.min.js"></script> <canvas id="c" style="border:1px solid black"></canvas>a++

答案 6 :(得分:-3)

在第一个例子中,你没有增加a的值 for(a = 5; a&lt; 10; a + 1&lt; --- a + 1不是如何将1加到一个值 你可以使用++