获得与我所知相反的意外表达结果

问题描述 投票:0回答:1

Java问题

int x=7,y=5;
x-=x++ + y + --y + ++x +10;
System.out.println(x);

为什么输出-28?

我以为答案是-26 由于简写运算符必须具有最低优先级,因此在评估整个右侧之后,它不应该使用 x 的最终值吗?

java expression
1个回答
0
投票

因为

x -= x++ + y + --y + ++x + 10;

的“简写”
x = x - x++ + y + --y + ++x + 10;

并且将从左到右评估,如下:

x = 7 - 7 + 5 + 4 + 9 + 10;
© www.soinside.com 2019 - 2024. All rights reserved.