把mynum=mynum-1换成mynum=mynum--系统就会崩溃

来源:4-7 来来回回(Do...while循环)

qq_谜离_03319966

2016-10-14 11:15

 把mynum=mynum-1换成mynum=mynum--系统就会崩溃

写回答 关注

8回答

  • 学之舟_36820
    2016-10-28 00:53:52
    已采纳

    这里出现无限循环,是因为这是一个自己等于自己副本的赋值方式,

    原来带后置型递增(减)符的变量是在包含它的语句被求值之后才去执行,

    这里语句i=i++,语句被求值刚好是i,被求值i出来后,i的运算就已经执行完毕,后面的递增()执行直接被跳过了;

    i在下一次循环中开始时候,值没有变化,就不能跳出循环。

    qq_谜离_...

    非常感谢!

    2016-10-31 09:27:39

    共 1 条回复 >

  • 一叶红尘
    2018-07-25 13:39:49

    还有你把--a,b--改写成a=--a,b=b--试试,不一样的

  • 一叶红尘
    2018-07-25 13:36:36

    一次运算可能i++没有意义但是要是循环就有意义了,就被赋值了

  • qq_梦与现实的距离_0
    2016-11-03 23:01:53

    这个6啊,系统真的崩溃了

  • qq_谜离_03319966
    2016-10-14 12:35:30

    在javascript中遇到这2个家伙之后一直无法理解

    在百度查阅了很多文章

    大致上都是说可以分开看成如下:

    i=i++ 等于(i=i;i=i+1)意识是先赋值 在做运算

    i=++I 等于(i=i+1;i=i)意识是做运算 在赋值

    我一直无法理解的地方在于这句话“意识是先赋值 在做运算”

    这里的运算不也是赋值吗 “=”就是赋值的意识啊 百度查阅到的文章大都是这样分开为(i=i;i=i+1)(i=i+1;i=i)但是在我的学习中我100%确定“=”就是赋值 所以大家的表示方式是错误的。

    i=i++意识是先把i的值赋给i 在做运算+1 但是没有赋值 这个运算我理解为毫无意义


  • qq_谜离_03319966
    2016-10-14 11:53:22
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>do...while</title>
    <script type="text/javascript">
        var a =6;//mynum初值化数值为6
        var b =6;
        --a;
        b--;
        document.write("a="+a+"<br/>");
        document.write("b="+b);
    	</script>
    </head>
    <body>
    </body>
    </html>
    结果都一样的啊


  • Hey你的益达
    2016-10-14 11:50:48

    mynum--相当于mynum=mynum-1,当你把代码写成mynum=mynum--时,编译时可以认为是

    mynum=mynum=mynum-1 这样是没办法编译通过的。


    Hey你的益... 回复qq_谜离_...

    var a=6; var b=6; var c=a--; var d=--b; 输出c,d的值

    2016-10-30 13:01:22

    共 2 条回复 >

  • 乾跹
    2016-10-14 11:19:50

    mynum--;

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468194 学习 · 21891 问题

查看课程

相似问题