Java中的添加顺序

时间:2014-10-20 20:57:48

标签: java floating-point addition

Java以什么顺序添加数字a + b + c
a + (b + c)还是(a + b) + c

我刚刚学会了浮点表示是如何工作的,并完成了一个练习,该练习解释了如果a, b, cfloat s,当我以上面写的不同方式加起来时,它们可能产生不同的结果。登记/> 这让我想知道Java实际上采用了哪种方式?

3 个答案:

答案 0 :(得分:8)

加法运算符是左关联的,这意味着a + b + c的评估方式与(a + b) + c相同。

JLS, Section 15.18,声明:

  

加法运算符具有相同的优先级,并且在语法上是左关联的(它们从左到右分组)。

答案 1 :(得分:3)

Left to right (jls-15.18)除非您添加括号以更改评估顺序。

static int a() {
    System.out.println("a");
    return 1;
}

static int b() {
    System.out.println("b");
    return 1;
}

public static void main(String[] args) {
    System.out.println(a() + b());
}

输出

a
b
2

答案 2 :(得分:2)

a + b + c的顺序是(a + b) + c(左关联性)的顺序。