(一)、運算符
什么是運算符?運算符是一種告訴編譯器執行特定的數學或邏輯操作的符號,是用于操作一個或多個操作數的程序元素。C# 有豐富的內置運算符,分類如下:算術運算符、關系運算符、邏輯運算符、位運算符、賦值運算符及其他運算符。接受一個操作數的運算符稱為一元運算符,如增量運算符(++)、和減量運算符(--);接受兩個操作數的運算符稱為二元運算符,如算數運算符(+-*/);接受3個操作數的運算符稱為三元運算符(也叫三目運算符),如條件運算符(?:)接受三個操作數,它是C#中唯一的三元運算符。
代碼示例:(注意:在同一作用域中,兩個變量不能夠重名。這里僅供示例,每條分割線代表不同作用域)
//----------( 賦值運算符= )---------- int num = 10; num = 20; //變量可以重復賦值,一旦給一個變量賦了新值,那么變量中的老值便不復存在了; Console.WriteLine(num); //此時num為20 Console.ReadKey(); //----------( ++ :自加1 )---------- int a= 10; int b; b= a++; //b=10,a=11,先用后加 b= ++a; //b= 12,a= 12,先加后用 //----------( -- :自減1 )---------- int a= 10; int b; b= a--; //b=10,a=9,先用后減 b= --a; //b= 8,a= 8,先加后減 //----------( += )---------- int a = 10; int b = 8; a += b; // a = a + b; a結果為18 //----------( -= )---------- int a = 10; int b = 8; a -= b; // a = a - b; a結果為2 //----------( *= )---------- int a = 10; int b = 8; a *= b; // a = a * b; a結果為80 //----------( /= )---------- int a = 10; int b = 8; a /= b; // a = a / b; a結果為1.25 //----------( %= )---------- // %取余(取模),用于取余數(兩個整數相除的余數) int a = 10; int b = 8; a %= b; // a = a % b; a結果為2 //----------( 關系運算符 )---------- bool mybool; int a = 10; int b = 20; mybool = a > b; //如果大于返回true,如果小于返回false; 此時mybool為false mybool = a < b; //如果大于返回true,如果小于返回false; 此時mybool為true mybool = a >= b; //如果大于等于返回true,否則false; 此時mybool為false mybool = a <= b; //如果小于等于返回true,否則false; 此時mybool為true mybool = a != b; //如果不等于返回true,否則false; 不等于符號是!=; 此時mybool為true mybool = a == b; //如果等于返回true,否則false; 等于符號是==; 此時mybool為false //----------( 邏輯或運算符 )---------- //“邏輯或”相當于生活中的“或者”,當兩個條件中有任一個條件滿足,“邏輯或”的運算結果就為“真” bool b1 = true; bool b2 = false; Console.WriteLine(b1 || b2 ); //或||,有一個true,結果true ,否則false ;運算符前一個操作數為true值時,不再執行后一個操作數的內容;此時輸出了true //----------( 邏輯與運算符 )---------- //“邏輯與”相當于生活中說的“并且”,就是兩個條件都同時成立的情況下“邏輯與”的運算結果才為“真”。 bool b1 = true; bool b2 = false; Console.WriteLine(b1 && b2 ); // 與&&;同時為true時,結果為true;否則false; 此時輸出了false //----------( 邏輯非運算符 )---------- //“邏輯非”值取反,即取值的反值。 bool b1 = true; Console.WriteLine(!b1); // !非;b1為true時,則false; 此時輸出了false //----------( 位邏輯異或運算符 )---------- bool b1 = true; bool b2 = false; Console.WriteLine(b1 ^ b2 ); // ^有且只有一個;有且只有一個結果為true時則為true,否則false; 此時輸出了true //----------( is運算符 )---------- //is運算符用于動態檢查對象的運行時類型是否與給定的類型兼容(一致); //is運算符:檢查對象是不是給定類型,或者是否可以轉換為給定類型,如果是,這個運算符就返回True. var str = "我是字符串"; bool mybool = str is string; Console.WriteLine(mybool); //輸出true
(二)運算符的優先級
運算符接受的操作數可以是一個表達式,也可以是多個表達式的組合。在包含多個運算符的表達式中,運算符符優先級決定著表達式的意義和最終取值。
例如:int num =20 - 5 * 2; 由于乘法的優先級更高,因此程序會先執行乘法再執行減法,所以num的結果為10。
香蕉视频app 下圖列出了運算符的優先級順序:優先級從上到下依次遞減,最上面具有最高的優先級。同級運算符的運算順序取決與運算符的結合順序,只有三個優先級是從右到左結合的,它們是一元運算符、條件運算符、賦值運算符。其他運算符都是從左到右結合。如:a+b+c表達式是按照(a+b)+c的順序進行計算。
(三)、表達式
香蕉视频app 表達式是由一個或者多個操作數以及零個或零個以上的運算符組成的序列,通過計算表達式,就可以得到一個值,對象或方法的結果。表達式中可以包含文本值、方法調用、運算符及其操作數,以及簡單名稱。簡單名稱可以是變量、類型成員、方法參數、命名空間或類型名稱等。
從表達式的定義可以看出,簡單的文本也可以成為表達式,例如:string str = "hello"; 其中"hello"就是最簡單的文本值,同樣它也是一個表達式。
文章評論