Java中x=5,m=0求x+=x+++(x+++m)
展开全部
x = x + (x++)+((x++)+m);
x = 5 + 6 + (5+0);
结果为16
x = 5 + 6 + (5+0);
结果为16
追问
等式左边x+怎么变成x的
追答
a= a+1同等于a+=1;
java基础语法。。。。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
++是自增运算符;+=是加后赋值;还要明白运算符优先等级
计算结果:
x=7+6+(5+0)
x=18
计算结果:
x=7+6+(5+0)
x=18
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
来看一下,设x=x++,此步的运算逻辑为,先把右边x所引用的值赋给左边的x,然后右边的x再自增,此时右边的x虽然值变为了6,但实际并没有赋给左边的x,所以x的值仍是5。
再看,x+=x++等同于x=x1(1&2只是为了叙述方便的表示,和运算无关)+x2++,同理x=x1+x2,然后x2自增,所以x=10。
最后()中的运算先进行,x自增1==6再加0=6,此时6虽然没有被具体赋给某一变量,但因为之后还参与到其它运算中,所以暂时不会被自动回收。
于是最后结果就是:X=5+5+6==16
再看,x+=x++等同于x=x1(1&2只是为了叙述方便的表示,和运算无关)+x2++,同理x=x1+x2,然后x2自增,所以x=10。
最后()中的运算先进行,x自增1==6再加0=6,此时6虽然没有被具体赋给某一变量,但因为之后还参与到其它运算中,所以暂时不会被自动回收。
于是最后结果就是:X=5+5+6==16
追问
我看不懂😭。请问第七行“实际没有赋值给左边的x”是什么意思?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询