java - 哪个有更高的优先级,+或 -

时间:2017-04-12 11:07:07

标签: java operator-keyword operator-precedence

考虑这个表达式:

x1 = ++x - x++ + --x

如果输入x的值5

java中这种表达式的输出是什么,为什么?

1 个答案:

答案 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;

显然,+-没有更高的优先级,因为它只是按照外观的顺序减去并添加。