永发信息网

java中,int a=2;int b=a+3*a++;为什么b=8?

答案:4  悬赏:0  手机版
解决时间 2021-03-27 03:33
  • 提问者网友:像風在裏
  • 2021-03-26 22:39
java中,int a=2;int b=a+3*a++;为什么b=8?
最佳答案
  • 五星知识达人网友:时间的尘埃
  • 2021-03-26 23:13
++在变量后面,是运算之后再加1;++在变量前面,是运算之前先加1。
  这段代码的意思就是,先计算b=2+3*2,再计算2+1并赋给a。所以运算之后b=8,a=3。
  所以如果这段代码实在for循环中的话,下次运行的时候b=12,a=4.追问直接就把a换成2了吗?我以为计算机的步骤是这样的
b=a+3*2++;--------先乘除后加减
b=3+6;--------------3*2++算完后,才会将3再代入+号前的a追答  对的,是直接a换成2做运算。你原来理解的步骤在++这个运算上出现了问题。具体的步骤是这样(把b=2+3*a++分成两部分来运算):
  第一步:b=2+3*2=8
  第二步:a=2+1=3,并结束运算。

  其实也可以这样来理解:我们可以把a++这种运算当成运算等级最低的一种运算模式,当所有的运算都结束了,最后一个再运算a++;而++a则正好相反,可以看做是运算等级最高的一种运算模式,其他的都还没有运算,++a就已经第一个运算好了。
全部回答
  • 1楼网友:时间的尘埃
  • 2021-03-27 02:47
你以为是11.a++ 等于2 ++a 才等于3
  • 2楼网友:舍身薄凉客
  • 2021-03-27 01:23
a++,是使用了以后。a再增加1。追问3*a++这一步的时候,结果为3*2=6,这个时候a的值由2变为3. 就变成了b=3+6 结果应该是9啊
  • 3楼网友:傲气稳了全场
  • 2021-03-26 23:49
a=2,b=0
b=a++ ,b=2,a=3
b=++a ,b=3,a=3
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯