java表达式计算和运算符优先级

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

我有逐步解决Java表达式计算的问题

System.out.println(++x + x++ * y-- - --y);

我知道此优先顺序:1.一元后缀2.前缀一元3.乘法4.添加剂

但是当我以此优先级进行计算时,结果如下:// 12 + 11 * 19-18有人可以帮我吗

java expression operator-keyword operator-precedence
1个回答
0
投票

后缀一元变量在变量求值之后应用,与前缀相反,后者在求值之前应用,可以重写您的表达式:

int x_prefix = x + 1; // ++x
int y_prefix = y - 1; // --y

System.out.println(x_prefix + x * y - y_prefix);

int x = x + 1; // x++
int y = y - 1; // y--

您编写了运算符优先级,这是正确的,但是每个运算符都有自己的行为,在后缀递增的情况下,当然必须先于其他运算符求值,但是其行为是返回当前变量,并在其值递增后返回。

© www.soinside.com 2019 - 2024. All rights reserved.