qq_心随风动_0
2015-08-27 20:55
“第二轮计算后,a 为:6;b为:1;第二次计算sum为:27,sum的类型也发生变化了”第二轮中的ab是怎么算出来的?
第一轮的时候:a=5,b=2;
这是第二轮的计算:sum = ( (++a) + 3 ) / (2 - (--b) ) * 3;
先算(++a)=++前置,先自增1,再赋值参与运算,此时(++a)=6,a由于自增1等于6;
再算(--b)同理于上面的,先自减1,再赋值参与运算,此时(--b)=1, b 由于自减1等于1;
所以前现有括号里算出来是sum=9/1 * 3=27
如果改成:sum = ( (a++) + 3 ) / (2 - (b--) ) * 3;
先算(a++)=++后置,则是先赋值运算,然后再自增1,此时(a++)=5,a由于自增1等于6;
再算(b--)同理于上面的,则是先是赋值运算,然后再自减1,此时(b--)=2, b 由于自减1等于1;
所以前现有括号里算出来是sum=8/0 * 3=那么就是报错,除数为0了。
还是改成这样吧改成这样:( (a++) + 3 ) / (2 - (--b) ) * 3;
a =6 b=1 sum=8/1 * 3=24
++前置这个地方,还是有疑问,计算不是应该从左到右,++前没有任何值,运算到这里,不会报错吗?
就是9*3 不要看成9/3了
第二轮是a =6 b=1 sum=9/1 * 3=27
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题