这个JAVA语句结果为什么是0?a++不会在最后加1吗?JAVA的这类运算顺序与C++不同?

int a = 0;a = a + (a++);System.out.println(a );
2024年11月17日 19:44
有6个网友回答
网友(1):

a++是等于1,但是是在下次出现a的时候a才是1.
a + (a++);这个时候的俩个a都是等于0的,只有在a + (a++);
这条语句之后出现的a才等于1,但是很不幸的是,a = a + (a++);这条语句对a重新赋值了,因为
a + (a++)等于0,所以a就被赋值为0.

网友(2):

a++ 这还是0 虽然a先等于1了 但你又让a=0 加上了(a++)=0 0+0 肯定等于0啊,换成++a

网友(3):

s529586 说的很对

网友(4):

看运算符的优先级。
java中 优先级是 + ++ =号
不过实际编程时不建议这么写, 太费解。 很少有程序员关注这个问题。

网友(5):

您好 很显然 输出的结果为0;为什么 往下看:
int a =0;
a = 0 + 0
输出:0

原因是a++ 是后加加 先赋值a=0 然后输出结果 然后再++
这个和js里面一样 假如:
a=a+(++a);
a=0+1;
输出结果就为:1
原因:++a 为前加加 先赋值a=a+1
希望能帮到您!

网友(6):

++在前是先运算后使用
++在后是先使用后运算