2014-09-25 49 views
3

我最近注册了一个Java类,并且我有一个关于模分的问题。Modulus Division

我在教科书得到一个例子:

(100 - 25 * 3 % 4) = 97 

请问这个等于97?我尝试了每一种可能性,但我似乎无法弄清楚。

有人可以请这么友善地为我分解它。

在此先感谢。

+0

%是模数... 25 * 3 = 75,75%4 = 3和100-3 = 97。( *具有更高的优先级) – 2014-09-25 10:54:48

回答

9

运算符优先级

(100 - ((25 * 3) % 4)) = 97

25*3=75

75 MODULO 4=3

100-3=97

就是这样。

如果您不确定运营商的优先级,那么在任何地方都会加上括号。

+1

因此,括号中会出现(100 - ((25 * 3)%4))= 97? – 2014-09-25 10:55:50

+3

是的,看看这个页面:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html *和%具有相同的优先级,它们从左到右进行评估,首先是*,然后是%,最后是 - 。 – StephaneM 2014-09-25 10:59:43

+0

谢谢Stephan为您解答!欣赏它! – DaBruh 2014-09-25 12:12:42

1

运算符*,/和%被称为乘法运算符。它们具有相同的优先级,并且在语法上是左联合的(它们从左到右分组)。

所以每当有一个OP1乙OP2 C和两个OP1和OP2是*,/或%它相当于

(A OP1 B)OP2Ç

25 * 3 % 4 -> a * b % c 
    (25*3)%4->(a*b)%c 

( - )运算符是从右向左。因此 - 操作员在右侧表达完成后执行计算。 所以答案是 100-(25 * 3)%4 = 100-3 = 97