初学java ,这里 int a=1; a=a++ + ++a; 结果为什么是4不是不5?
不是应该看成a=a+1;a=a+a;a=a+1么那就应该是a=2;a=2+2;a=4+1a应该5啊?为什么结果是4求教!如果加上intb=1;b=a+++++a问a,b是...
不是应该看成 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。还是我整个理解上有问题? 展开
如果加上 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。还是我整个理解上有问题? 展开
1个回答
展开全部
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;
这已经说的很清楚了。
更多追问追答
追问
看了你的解释,是不是这样的,由于int a=1;a++只是将a加上1,a++这里并没有变成2(实际上还是1)而是将2代入++a中,而++a意思是先加上1,然后使用这个数(++a这里变成3了)最后1+3=4。这样理解对吗?
追答
是对的 。先使用 就是说a先用1代入 +运算然后自己加1变为2 , 后面++a 是先加1,再代入+运算
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询