Java中的优先运算符

时间:2018-07-20 13:36:52

标签: java operators

对于下一个代码,z是什么? (Java)

int x = 5;
int y = 10;
int z =++x*y--;

优先级顺序为:y--, ++x, *, =。 (https://introcs.cs.princeton.edu/java/11precedence/) 为什么运行代码后z = 60?

2 个答案:

答案 0 :(得分:0)

++运算符在表达式之前求值。

即:

int x = 10;
int y = ++x; //y = 11
int z = x ++; // z = 11;

答案 1 :(得分:0)

y--在您的来源列表中更高。但是,当后减量发生时,它会在整个评估之后发生。

因此,如果在获得y的值后打印z,它将是9。

先进行预递增,所以++x在该语句中变为6(并且显然乘以10)。

在文档中查看example