【发布时间】:2015-10-26 15:14:00
【问题描述】:
我正在使用 java,但我无法理解它是如何计算这个总和的。 5+3/2*7-8=4
怎么变成 4 了?
算术运算符的应用顺序 计算如下: 1. 否定,- 2.乘除法,*,/,% 3.加减法,+,-
还有什么是否定?
【问题讨论】:
标签: arithmetic-expressions negation
我正在使用 java,但我无法理解它是如何计算这个总和的。 5+3/2*7-8=4
怎么变成 4 了?
算术运算符的应用顺序 计算如下: 1. 否定,- 2.乘除法,*,/,% 3.加减法,+,-
还有什么是否定?
【问题讨论】:
标签: arithmetic-expressions negation
在java中,当你将两个整数相除时,你会得到一个整数。所以在你的等式中,3 / 2 = 1。变成 5 + (1 * 7) - 8 = 4
5 + 3 / 2 * 7 - 8 = 4
5 + 1 * 7 - 8 = 4
5 + 7 - 8 = 4
5 + -1 = 4
【讨论】:
我是这样理解的: - 因为除法和乘法是最高优先级,它们将首先被处理,从左到右;所以 3/2 给出 1,正如@Brian Cain 指出的那样;然后我们将 1 乘以 7 -> 得到 7 - 到目前为止,我们有 5 + 7 - 8,再次从左到右处理得到 4
我不是很喜欢 Java,但在我看来,否定就像一个与布尔类型相关的操作:这是一个接受 true 或 false 的类型,通过使用否定 (!),您可以在这两者之间翻转值,但请仔细检查
【讨论】: