前面我們學(xué)習(xí)了那么多運(yùn)算符,如果編程中同時(shí)使用了多個(gè)運(yùn)算符,到底哪一個(gè)會(huì)先運(yùn)算呢?這就是優(yōu)先級(jí)的問題。C#運(yùn)算符的優(yōu)先級(jí)請(qǐng)參考下面的順序:
①括號(hào)。學(xué)數(shù)學(xué)的時(shí)候我們就知道,要先計(jì)算括號(hào)里面的內(nèi)容。C#語言也是一樣,如果有多層括號(hào),要從里向外計(jì)算。括號(hào)優(yōu)先級(jí)最高。
②一元運(yùn)算符。有些運(yùn)算符兩邊有2個(gè)操作數(shù),比如2+3、6%5等等,這些叫做二元運(yùn)算符。只有一個(gè)操作數(shù)的叫做一元運(yùn)算符,它們的優(yōu)先級(jí)高于二元運(yùn)算符。一元運(yùn)算符包括:++(自加) 、 --(自減) 、 !(邏輯非)。
③*(乘)、/(除)、%(取余)。
④+(加)、-(減)。
⑤>(大于)、<(小于)、>=(大于等于)、<=(小于等于)。
⑥==(等于)、!=(不等于)。
⑦&&(邏輯與)。
⑧||(邏輯或)。
⑨賦值運(yùn)算符。包括:=、+=、-=、*=、/=、%=。
另外,還需要注意一點(diǎn):優(yōu)先級(jí)相同的運(yùn)算符從左向右計(jì)算(賦值運(yùn)算符相反)。
請(qǐng)看下面這段代碼:
bool b = 20 - (15 - 8) * 2 > 10 && (2 % 2 * 2 + 2) > 2;
Console.WriteLine(b);
分析:首先計(jì)算優(yōu)先級(jí)最高的括號(hào),(15-8)得到7,(2%2*2+2)則需要先計(jì)算%和*,后算+,結(jié)果是2,表達(dá)式就變成了:
bool b=20-7*2>10&&2>2;
接下來優(yōu)先級(jí)最高的是7*2,然后是減法,變成:
bool b=6>10&&2>2;
繼續(xù)計(jì)算兩個(gè)大于號(hào),得到:
bool b=false&&false;
最后的結(jié)果當(dāng)然是false:
這個(gè)程序想要輸出 True ,請(qǐng)你完成第 13 行的賦值。
程序輸出a==b,如果想得到true,就需要知道a的值是true還是false。
第12行的表達(dá)式應(yīng)當(dāng)首先計(jì)算一元運(yùn)算符++x,x會(huì)變成2,接下來計(jì)算x*x即2*2,得到4,4>3為true,所以a的值是true。
最后,只要b也是true,a==b就是true了。
請(qǐng)驗(yàn)證,完成請(qǐng)求
由于請(qǐng)求次數(shù)過多,請(qǐng)先驗(yàn)證,完成再次請(qǐng)求
打開微信掃碼自動(dòng)綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書簽
舉報(bào)