我有逐步解决Java表达式计算的问题
System.out.println(++x + x++ * y-- - --y);
我知道此优先顺序:1.一元后缀2.前缀一元3.乘法4.添加剂
但是当我以此优先级进行计算时,结果如下:// 12 + 11 * 19-18有人可以帮我吗
后缀一元变量在变量求值之后应用,与前缀相反,后者在求值之前应用,可以重写您的表达式:
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--
您编写了运算符优先级,这是正确的,但是每个运算符都有自己的行为,在后缀递增的情况下,当然必须先于其他运算符求值,但是其行为是返回当前变量,并在其值递增后返回。