Java:带括号的整数相加

Java: Addition of integers with parentheses

考虑以下两行代码:

System.out.println((1 + (1 - 1)) / 2);
System.out.println(1 + (1 - 1) / 2);

这是我得到的输出:

0
1

为什么会这样? Java 算法是否遵循 PEMDAS 规则?

我没有发现问题,您的代码确实遵循 PEMDAS。唯一的问题是你没有得到 0.5 因为你使用的是整数除法。试试这个:

System.out.println((1 + (1 - 1)) / 2.0);
System.out.println(1 + (1 - 1) / 2.0);

第一个只是 (1 + 0)/2 = 1/2,它给你 0,因为你使用的是整数。

第二个是 1 + 0/2 = 1 + 0 = 1,它给你 1

是的,它遵循 PEMDAS 规则,它还会截断答案(在不四舍五入的情况下截断小数点后的数字)。