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