考虑这个表达式:
x1 = ++x - x++ + --x
如果输入x的值5
java中这种表达式的输出是什么,为什么?
答案 0 :(得分:4)
+或 - 没有更高的优先级。
如果没有括号,它们只是以外观的顺序执行,让我们考虑你的例子:
public class Test {
public static void main(String[] args) {
int x = 5;
int x1 = ++x - x++ + --x;
System.out.println(x1);
}
}
将打印6
前/后递增/递减有四种操作:
++x
将在评估之前递增(在表达式中使用其值之前)--x
将在评估前减少x++
将在评估后(在表达式中使用其值后)增加x--
将在评估后决定将表达式分解为部分:
1)" ++x
"在表达式中使用它之前,x将增加1,所以现在它是:
6 -
2)" - x++
"在表达式中使用其值后,x将增加1,因此它是:
6 - 6 , but now x=7
3)" + --x
"在使用其值之前,x将减1,因此最终转换为:
x1 = 6 - 6 + 6;
这将执行:
x1 = 0 + 6;
x1 = 6;
显然,+
或-
没有更高的优先级,因为它只是按照外观的顺序减去并添加。