求解Java中a=1,b=2,a+++b的值为什么是3?
在Java中“++”运算符是右结合性,优先级“+”高于“++”,a+++b不是应该等价于a+(++b)吗?如果这样的话不就等于4了吗?可是运行结果是3,为什么呢?...
在Java中“++”运算符是右结合性,优先级“+”高于“++”,a+++b不是应该等价于a+(++b)吗?如果这样的话不就等于4了吗?可是运行结果是3,为什么呢?
展开
3个回答
展开全部
追问
还是不明白
追答
①
int a1 = 10;
int b1 = 20;
System.out.println(a1+ ++b1);//输出31
②
int a2 = 10;
int b2 = 20;
System.out.println(a2++ +b2);//输出30
③
int a3 = 10;
int b3 = 20;
System.out.println(a3+++b3);//输出30
这个问题的答案就是不要研究这个,然后形成良好的书写规范。
展开全部
应该是等价于 a++(+b),而a++是先使用再运算,所以最终等价于a+b,结果为3。
追问
还是没看明白
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
(a++)+b
1+b;a=a+1;
1+2;a=2
3;a=2
1+b;a=a+1;
1+2;a=2
3;a=2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询