不是应该看成 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。还是我整个理解上有问题?
初学java ,这里 int a=1; a=a++ + ++a; 结果为什么是4不是不5?
答案:1 悬赏:80 手机版
解决时间 2021-02-05 13:45
- 提问者网友:绫月
- 2021-02-04 19:06
最佳答案
- 五星知识达人网友:鸽屿
- 2021-02-04 20:27
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;
这已经说的很清楚了。
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;
这已经说的很清楚了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯