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