Java模数运算符

afy*_*fym -3 java modulus

使用模数运算符是所有程序员必须知道的.我知道=).

在java中我们有:

int a = 100 , b = 50, c;
Run Code Online (Sandbox Code Playgroud)

如果我们这样做:

c = a % b; // c = 0 because : 100 = 50*2 + 0 | D = d*q + r using simple maths
Run Code Online (Sandbox Code Playgroud)

但是,由于没有找到此操作的原因,我感到有点沮丧:

c = b % a; // c = 50 ???? It seems not to have logic when a use D = d*q + r
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么50%100是50 ??? 我无法理解.

谢谢

Ant*_*onH 8

因为你可以乘以0:

c = 100*0 + 50;
Run Code Online (Sandbox Code Playgroud)

+ 50是以模数形式返回的.