只需执行一些基本的模运算,然后尝试用问号将我的头缠在下面的运算周围。
0%5 // 0 - Totally understand
1%5 // 1 ?
2%5 // 2 ?
3%5 // 3 ?
4%5 // 4 ?
5%5 // 0 - Totally understand
也许我在以错误的方式思考。例如1/5将返回0.2的Double
而不是单个integer
,那么它如何返回余下的1
?
我理解这些。这是有道理的,但以上我无法绕开我的头。
9%4 // 1
10%2 // 0
10%6 // 4
如果有人可以解释这一点,那就太好了。好像我正在放屁。 Source of learning。
答案 0 :(得分:1)
从您链接到的同一Basic Operators页上:
余数运算符(
a % b
)算出b
内可以容纳a
的多少倍,并返回剩余的值(称为余数)。
1 % 5
: 5
不适合1
,因此适合0
次。
这意味着1
可描述为
1 = (5 * multiplier) + remainder
由于乘数为0
,所以remainder
为1
1 = (5 * 0) + remainder
1 = remainder
如果我们改为查看6 % 5
,则其余部分也为1
。这是因为5
一次适合6
:
6 = (5 * multiplier) + remainder
6 = (5 * 1) + remainder
6-5 = remainder
1 = remainder
答案 1 :(得分:0)
此 / 除法运算符,当您说help:effective-pom
时,如果除法是整数,则将得到1/5
,但是当您进入0
加倍,它将得到1.0/0.5
但是在说0.2
时取模运算符,因为您有1%5 = 1
,这意味着1的数字为1 = 0*5 + 1
且提示为{{ 1}}