我是否在 Java 中错误地执行了我的操作顺序?

Am I performing my order of operations incorrectly in Java?

我对这个问题有点困惑。

我不确定 % (mod) 在 BEDMAS 操作顺序中的位置。

37 % 20 % 3 * 4 = ?

我的心算答案是5,但我肯定做错了什么。 % mod 在 BEDMAS 中的什么位置?

取模 (%) 运算符与除法 (/) 运算符具有相同的优先级,因此:

37 % 20 是 17
17 % 3 是 2
2 * 4 是 8

IDEOne output

我刚刚对此进行了测试,java 输出了完全正确的结果。 37 % 20 = 17, 17 % 3 = 2, 2 * 4 = 8。但请参阅 MathExchange 以了解您的 BEDMAS 问题

BEDMAS 具有误导性,因为它建议先除后乘。 比较适合小学生。

应该是

  1. 乘法运算:* / %
  2. 加法(二元)运算:+ -

括号、一元 (-)、位和逻辑运算也未完全包含在 BEDMAS 中。

    (((37 % 20) % 3) * 4) = 8

不是模后乘法:

    ((37 % 20) % (3 * 4)) = 5  ***