常用运算符和表达式
?? 運(yùn)算符在程序中應(yīng)用廣泛,尤其在計(jì)算功能中,常常需要大量的運(yùn)算符。運(yùn)算符結(jié)合操作數(shù),便形成了表達(dá)式,并返回運(yùn)算結(jié)果。
?? 一. 運(yùn)算符
?????? 1.算術(shù)運(yùn)算符
????????? 算術(shù)運(yùn)算符用于對(duì)數(shù)值數(shù)據(jù)進(jìn)行計(jì)算。
???????? ? ? 在C#語言中,根據(jù)兩個(gè)操作數(shù)的類型特點(diǎn),加法運(yùn)算符具有多重作用。
?????????????? * 兩個(gè)操作數(shù)均為數(shù)字,相加的結(jié)果為兩個(gè)操作數(shù)之和。
???????? ? ? ? * 兩個(gè)操作數(shù)均為字符串,把兩個(gè)字符串連接在一起。
?????????????? * 兩個(gè)操作數(shù)分別為數(shù)字和字符串,則先把數(shù)字轉(zhuǎn)換成字符串,然后連接在一起。
?????????????? * 兩個(gè)操作數(shù)分別為數(shù)字和字符,則先把字符轉(zhuǎn)換成Unicode代碼值,然后求和。
????????????? 算數(shù)運(yùn)算符中的求模運(yùn)算(%)本質(zhì)上也是一種除法運(yùn)算,只不過它舍棄商,而把小于除數(shù)的未除盡部分(即余數(shù))作為運(yùn)算結(jié)果,有稱為取與運(yùn)算
????? 2.關(guān)系運(yùn)算符
???????? 關(guān)系運(yùn)算符又稱為比較運(yùn)算符,用來比較兩個(gè)操作數(shù)的大小,或者判斷兩個(gè)操作數(shù)是否相等,運(yùn)算符的結(jié)果為true或false。
??????? ? ? 操作數(shù)只能是值類型的數(shù)據(jù)。
?????? 3.邏輯運(yùn)算符
????????? 邏輯運(yùn)算符讀操作數(shù)或表達(dá)式執(zhí)行布爾邏輯運(yùn)算,常見的邏輯運(yùn)算符如下表所示:
| ?? 運(yùn)算符 | ?????????? ! | ?????? & | ?????? | | ????? ? ^ | ??????????? && | ??????????? || |
| ??? 含義 | ?????? 邏輯非 | ???? 邏輯與 | ?? 邏輯或 | ?? ? 邏輯異或 | ???????? 條件與 | ???????? 條件或 |
| ??? 實(shí)例 | ???? !(8>2) | ????? 8&2 | ???? 8|2 | ???? ? 8^2 | ?? (8>2)&&(3>4) | ??? (8>2)||(3>4) |
| ??? 結(jié)果 | ??????? False | ??????? 0 | ????? 10 | ??????? 10 | ????????? False | ?????????? True |
?????? 邏輯非(!)運(yùn)算結(jié)果是操作數(shù)原有邏輯的反值,邏輯與(&),邏輯或(|),邏輯異或(^)三個(gè)運(yùn)算符都是比較兩個(gè)整數(shù)的相應(yīng)位。只有當(dāng)兩個(gè)整數(shù)的對(duì)應(yīng)位都是1時(shí),邏輯與(&)運(yùn)算符才返回結(jié)果1,否則返回結(jié)果0;當(dāng)兩個(gè)結(jié)果整數(shù)的對(duì)應(yīng)位都是0時(shí),邏輯或(|)運(yùn)算符才返回結(jié)果0,否則返回結(jié)果1;當(dāng)兩個(gè)整數(shù)的對(duì)應(yīng)位一個(gè)是1,而另一個(gè)是0時(shí),邏輯異或(^)運(yùn)算符才返回結(jié)果1,否則返回結(jié)果0;
?????? 條件與(&&)與條件或(||)運(yùn)算符用于計(jì)算兩個(gè)條件表達(dá)式的值,當(dāng)兩個(gè)條件表達(dá)式的結(jié)果都是真時(shí),條件與(&&)運(yùn)算符才返回結(jié)果真,否則返回結(jié)果假;當(dāng)兩個(gè)條件表達(dá)式的結(jié)果都是假時(shí),條件或(||)運(yùn)算符才返回結(jié)果假,否則返回結(jié)果真。
? ?? 4.賦值運(yùn)算符
??????? 賦值運(yùn)算符的作用是把某個(gè)常量或變量或表達(dá)式的值賦值給另一個(gè)變量。除了簡單的賦值運(yùn)算符(=)外,常見的符合運(yùn)算符如表所示:
?
| ??? 運(yùn)算符 | ????? += | ??? -= | ???? *= | ???? /= | ???? %= |
| ???? 含義 | ??? 加法賦值 | ?? 減法賦值 | ?? 乘法賦值 | ? 除法賦值 | ?? 取模賦值 |
| ???? 示例 | ??? 8+=2 | ??? 8-=2 | ??? 8*=2 | ??? 8/=2 | ??? 8%=2 |
| ???? 結(jié)果 | ????? 10 | ?????? 6 | ???? 16 | ????? 4 | ?????? 0 |
???????? 從上面的示例可以看出,復(fù)合賦值運(yùn)算符實(shí)際上是特殊賦值運(yùn)算符的一種縮寫形式,目的是使對(duì)變量的改變更簡潔。
????? 5.其他特殊運(yùn)算符
? ? ? ?? C#還有一些特殊的運(yùn)算符,不能簡單的歸為某個(gè)類型。
? ? ? ?? (1)is運(yùn)算符
? ? ? ? ? ? ? ?? is運(yùn)算符用于檢查變量是否為指定的類型如果是,返回真,否則返回假。 例如下面的示例:就返回True? ? ? ? ? ? ? ? ? ? ? ???
?????????????(2)as運(yùn)算符
? ? ? ? ? ? ? ? ? ?? as運(yùn)算符用于在相互兼容的引用類型之間執(zhí)行轉(zhuǎn)換操作,如果無法進(jìn)行轉(zhuǎn)換則返回null值,例如:
object temp1 = “a string” as object;??????????? (3)條件運(yùn)算符
???????????????????? 條件運(yùn)算符(?:)根據(jù)條件表達(dá)式的取值返回兩個(gè)可選值中的一個(gè):如果條件的取值為true,則返回第一個(gè)可選值,如果條件取值為False,則返回第2個(gè)可選值。例如,下面的語句返回true。
bool b = (3<5)?true:false;?
??????????? (4)new運(yùn)算符
?
? ? ? ? ? ? ? ? new運(yùn)算符用于創(chuàng)建一個(gè)新的類型實(shí)例,包括創(chuàng)建值類型,類類型,數(shù)值類型,和委托類型的實(shí)例。例如下面的語句用來創(chuàng)建一個(gè)數(shù)組類型的實(shí)例。? ? ? ? ? ? ?
????????????? (5)typeof運(yùn)算符
???????????????????? typeof運(yùn)算符用于返回特定類型的System.Type對(duì)象,并可通過Type對(duì)象訪問基類及本類的一些信息。例如,下面的語句將返回System.int32,表明int值類型的Syste.Type對(duì)象是System.int32.?????
?
???????????? (6)運(yùn)算符的優(yōu)先級(jí)
??????????????? 當(dāng)表達(dá)式中包含一個(gè)以上的運(yùn)算符時(shí),程序會(huì)根據(jù)運(yùn)算符的優(yōu)先級(jí)進(jìn)行運(yùn)算,優(yōu)先級(jí)高的運(yùn)算符會(huì)比優(yōu)先級(jí)低的運(yùn)算符先被執(zhí)行。
????????????? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?????????????????????????? 常見的運(yùn)算符的優(yōu)先級(jí)(由高到低)
| ???????????? 分類 | 運(yùn)算符 |
| ???????????? 特殊 | new,typeof |
| ???????????? 一元 | +(正),-(負(fù)),!,++,-- |
| ??????????? 乘除 | *,/,% |
| ??????????? 加減 | +,- |
| ??????????? 關(guān)系 | >.<,>=,<=,is,as |
| ??????????? 關(guān)系 | ==, != |
| ?????????? 邏輯與 | & |
| ???????? 邏輯異或 | ^ |
| ?????????? 邏輯或 | | |
| ?????????? 條件與 | && |
| ?????????? 條件或 | || |
| ??????????? 條件 | ?: |
| ??????????? 賦值 | +=,-=,*=,/=,&= |
?? 二. 表達(dá)式
??????? 表達(dá)式有操作數(shù)(變量,常量,函數(shù)),運(yùn)算符和括號(hào)()按一定規(guī)則組成。表達(dá)式通過運(yùn)算產(chǎn)生結(jié)果,運(yùn)算結(jié)果,運(yùn)算結(jié)果的類型由操作數(shù)和運(yùn)算符共同決定。表達(dá)式即可以跟簡單,也可以非常復(fù)雜。例如:
?
int i =127;int j =36;
Console.WriteLine(Math.Sin(i*i+j*j));
?
???????? 上述代碼中,表達(dá)式i*i+j*j作為Math.Sin()方法的方法的參數(shù)使用,而表達(dá)式Math.Sin(i*i+j*j)還是Console.WriteLine()方法的參數(shù)。
?
轉(zhuǎn)載于:https://www.cnblogs.com/ljknlb/p/7856150.html
總結(jié)