Javascript ++ - 帮助

时间:2016-04-26 13:43:47

标签: javascript html

为什么这个脚本的输出是5而不是8?

我认为--意味着-1两次。

<html>
  <body>
    <script>
      var x = 0;

      var y = 10;

      while ( x < y ){

        x++;

        y-- ;

      }

      document.write(y);
    </script>
  </body>
</html>

4 个答案:

答案 0 :(得分:1)

第一次迭代:

x = 0
y = 10

第二次迭代:

x = 1
y = 9

第三次迭代:

x = 2
y = 8

x何时不会小于y?当x等于或大于y时:

x = 5
y = 5

答案 1 :(得分:1)

为了帮助您更好地理解&#34; ++ --&#34;表示法:x--相当于x=x-1,依此类推。

答案 2 :(得分:0)

--y表示按y减1,因此每个循环y减1。

即。 y = y - 1

相反的是++x。这意味着每个循环增量x增加1。

即。 x = x + 1

循环一直持续到xy相同,5,因此不再满足while循环条件,从而打破循环。

关于增量和减量的更多细节here

答案 3 :(得分:0)

++运算符将数值增加1,而--运算符执行相反的操作,将数值递减1

以下是循环中发生的事情:

#Iteration    0       1       2       3       4       5
x value       0       1       2       3       4       5
y value      10       9       8       7       6       5
x < y      true    true    true    true    true   false  <-- breaking here (iteration 5)

在此标签中,您可以看到您的循环在迭代5处结束,5x的值为y0

让我们看看var j = 0; for (var i = 0; i < 1000; i+=1) { j++; } document.write(j); document.write('<hr>'); for (var i = 0; i < 1000; i+=1) { j--; } document.write(j);一千次递增和递减。

&#13;
&#13;
0
&#13;
&#13;
&#13;

显然,1000最终会再次成为0this.animate({scale(2, 2, vinerBBoxX, vinerBBoxY)}, 100, mina.easeinout);