2014-10-11 61 views
0

Ruby中的%符號表示什麼?例如,我用下面的代碼:Ruby中的%符號表示什麼?

puts "Roosters #{100 - 25 * 3 % 4}" 

,並得到以下的輸出:

97 

凡平分做了97從何而來?我查了一下模運算符是什麼,並且仍然不知道它在這個簡單的數學例子中做了什麼。

+1

http://stackoverflow.com/questions/2664301/how-does-modulus-divison-work – bruchowski 2014-10-11 05:27:54

+0

你怎麼知道想'75%4'結果? – 2014-10-11 05:28:23

+0

[Fixnum#%](http://www.ruby-doc.org/core-2.1.1/Fixnum.html#method-i-25)只是另一種花園式的方法。 – 2014-10-11 06:42:27

回答

1

Modulo operator。

它劃分並返回餘數。因此,在你的情況,75/4 18用的3

25 * 3 = 75

75%4 = 3(餘數)

100其餘部分 - 3 = 97

1

模 - 除以餘數

除以整數除法的餘數。

10/3 = 3 (with remainder 1 that we discard with integer division) 
10 % 3 = 1 (the part we normally discard is the part we are interested in with mod) 

它也用於創建週期。如果我們有1到N的序列,我們可以用M來修改它併產生一個循環。假設M = 3再次

for n in 0..10 
    m = n % 3 
    puts "#{n} mod 3 = #{m}" 
end 

0 mod 3 = 0 
1 mod 3 = 1 
2 mod 3 = 2 
3 mod 3 = 0 
4 mod 3 = 1 
5 mod 3 = 2 
6 mod 3 = 0 
7 mod 3 = 1 
8 mod 3 = 2 
9 mod 3 = 0 
10 mod 3 = 1 
+0

感謝您的幫助! – 2014-10-11 22:13:41

相關問題