2013-09-29 69 views
4

什麼是%=運營商做的,如本例所示:%=操作符的作用是什麼?

if (a > b) 
    a %= b; 

它有什麼用途,是常用的?

+0

'%='不是運算符。它包含兩個獨立的運算符['%'](http://msdn.microsoft.com/en-us/library/0w4e0fzs.aspx)和['='](http://msdn.microsoft.com/en-我們/庫/ sbkb459w.aspx)。基本上,'a%= b;'等於'a = a%b;' –

+1

@SonerGönül微軟似乎自稱它是一個運營商http://msdn.microsoft.com/en-us/library /ydwa9zh0.aspx –

+0

@MikeClark哇..我從來沒有注意到過。謝謝澄清':)' –

回答

10

MSDN

%運算計算通過它的第二分隔其第一個操作數後的餘數。所有數字類型都有預定義的餘數運算

所以你的情況,以下字符串

a %= b; 

是一樣的,因爲這一個:

a = a % b; 

這也適用於所有的運營商:

a += b等於a = a + b
a /= b equ阿爾斯到a = a/b
a -= b等於a = a - b

+0

'''a <= b'''等於''a = a

+2

@Gankro:這是我2011年4月愚人節發佈的主題:http://blogs.msdn.com/b/ericlippert/archive/2011/04/01/compound-assignment-part-two.aspx - - 請注意,這篇文章的第一部分是嚴肅的,但第二部分是一個笑話。 –

+0

@Eric:通過此鏈接豐富了我的生活。 –

0

這是一樣的:

a = a % b 
2

這對

a = a % b; 

一個快捷方式,其獲得的ab並將結果存儲在中。

+2

它得到*餘數*,而不是*模量*。見http://blogs.msdn.com/b/ericlippert/archive/2011/12/05/what-s-the-difference-remainder-vs-modulus.aspx –

+0

@EricLippert對於文章':)' –

0

%是一個% operator of C#,即

通過其第二

所以5 % 2將等於1除以它的第一個操作數後計算的餘數。

a %= b等於a = a % b,寫同樣的事情只是一小段路,爲

i+=a => i = i + a 
i*=a => i = i * a 
i/=a => i = i/a 
0

%=是一個複合operator.It類似於a = a % b

%用於獲取餘

5 %= 2;//1 
6%=2;//0 

一般%用於將很多元素映射到較少數量的元素。

因此,如果您有100個元素,並且您想映射它們以說出一個包含20個元素的數組..您可以使用%運算符

99%20;//19...So assign 99 to array index 19 
50%20;//10...So assign 50 to array index 10