Java以什么顺序添加数字a + b + c
?
是a + (b + c)
还是(a + b) + c
?
我刚刚学会了浮点表示是如何工作的,并完成了一个练习,该练习解释了如果a, b, c
是float
s,当我以上面写的不同方式加起来时,它们可能产生不同的结果。登记/>
这让我想知道Java实际上采用了哪种方式?
答案 0 :(得分:8)
加法运算符是左关联的,这意味着a + b + c
的评估方式与(a + b) + c
相同。
加法运算符具有相同的优先级,并且在语法上是左关联的(它们从左到右分组)。
答案 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
(左关联性)的顺序。