永发信息网

初学java ,这里 int a=1; a=a++ + ++a; 结果为什么是4不是不5?

答案:1  悬赏:80  手机版
解决时间 2021-02-05 13:45
不是应该看成 a=a+1; a=a+a; a=a+1 么 那就应该是 a=2;a=2+2; a=4+1 a 应该5啊?为什么结果是4求教!
如果加上 int b=1;b=a++ + ++a 问a,b是多少。a=a+1;b=a+a;a=a+1; 这个就清楚 a=2; b=2+2; a=2+1。a是3,b是4。还是我整个理解上有问题?
最佳答案
public class Test {
public static void main(String[] args) {
int a=1; 
a=a++ + ++a;// ①执行上面语句后 a的值
System.out.println("a=" + a);
int b=1;
b=a++ + ++a;// ② 最终a和b的值
System.out.println("a=" + a + " b=" + b);

}
}输出结果:

a=4
a=6 b=10


解释:
首先你要理解++ 在左边(++a)和在右边的区别(a++),+ 作为相加运算符的话 优先级是没有++运算符优先级高的, 也就是说先算++ 再算+


++a : 表示a先加1 ,然后再使用
a++ : 表示先使用a的值,  然后a再加1


那么①那一句  经过前面的a++ ,使用a的值为1后, a加1变为2  ,经过后面的++a,先加1 变为3,再和前面的1相加
翻译一下就是a = 1 +3  =4;  直到①执行完,a的值变为4


下面②那一句解释同上面的原理,翻译过来就是b = 4 + 6;


这已经说的很清楚了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
屈事的意思是什么啊?知道的请说下!
道坪华讯机电这个地址在什么地方,我要处理点
左侧大腿侧连臀部一大片这两天酸痛 尤其是如
清华大学材料工程硕士好就业吗
北京乐活港足道养生会所在什么地方啊,我要过
在广发银行贷20000,银行会给父母打电话核实
在哪里买正版雷蛇最便宜
玉雕刚学出来有多少钱一个月,技术一般
包公赔情的意思是什么啊?知道的请说下!
易网科技电脑这个地址在什么地方,我要处理点
如果一个男人不喜欢你,会愿意让你触碰他的身
昨天收到一个微信是一个处女被杀吃肉的照片请
【泼水节的习俗】傣族的风俗习惯和泼水节是怎
马尾萝的意思是什么啊?知道的请说下!
您好,我的Ai-Eos的转接环在镜头上拆不下来,
推荐资讯
伸歇的意思是什么啊?知道的请说下!
抚尺的意思是什么啊?知道的请说下!
请问火神和水神叫什么名字?
纠结,五菱宏光s与欧诺买哪个好
怎样将手机照片直接保存到网盘上
大写字母cy是哪位明星
豫a7gl37车主是谁,电话号码是多少?
1/2-10-acme-2g的螺帽内径是多少?
钞关的意思是什么啊?知道的请说下!
古代英国用什么代替纸写字
WF连不上电脑没网
华日二手车行地址好找么,我有些事要过去,
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?