C#編程自學之運算符和表達式
我們了解完C#數(shù)據(jù)類型與變量之后,還會遇到變量之間的運算,例如計算兩個數(shù)的和等等運算。那么,C#中都有那些常用的運算符呢?那么,往下看吧!
一、算數(shù)運算符
1.基本算數(shù)運算符
說到算數(shù)運算符,我們首先就應(yīng)該可以想到我們數(shù)學中一些常用的運算符例如:加 減 乘 除 求余!
那么在C# 這些運算符都是如何表示的呢?
知道C#基本運算符的表示之后我們該如何去使用呢?那么我們來看段代碼來看下什么是表達式。
int a = 10; //定義一個整形變量a 值為10 int b = 20; //定義一個整形變量b 值為20 //定義一個變量c 值為變量 a+b int c = a + b; //一組運算符所表述的代碼段簡稱運算符 //定義一個變量c1 值為變量 a1-b1 int c1 = a - b; //定義一個變量c2 值為變量 a2*b2 int c2 = a * b; //定義一個變量c3 值為變量 a3/b3 int c3 = a / b; //定義一個變量c4 值為變量 a4%b4 int c4 = a % b; Console.WriteLine("a + b = {0}",c); Console.WriteLine("a - b = {0}", c1); Console.WriteLine("a * b = {0}", c2); Console.WriteLine("a / b = {0}", c3); Console.WriteLine("a % b = {0}", c4);
上段代碼我們主要闡述了兩個知識點,一個是基本運算符加法的使用以及什么是表達式。那么我們來分析一下。
我們來看第五行代碼來看C#中運用基本算數(shù)運算符非常簡單,跟我們數(shù)學上計算加法一樣,首先看(a + b)等同于(10 + 20)計算完成后將計算結(jié)果賦給等號左邊的變量,這樣就完成了一個基本的算數(shù)加法運算,那么進行一個加法運算的代碼描述的代碼組合,我們就可以看做是C#中的表達式。
分析完一個那么后面的大家一定都可以推出來了吧?那么我們來看看運行的結(jié)果吧!
結(jié)果是否在你的預(yù)料之中呢?
2.自增運算符與自減運算符
了解完基本運算符之后我們在來看一種很有用的運算符:自增運算付與自減運算符!
那么自增符號與自減運算符是什么意思呢? 廢話不多說,看代碼:
int a = 1; a++; // a = a + 1 int b = a; a--; // a = a - 1 int c = a; Console.WriteLine("a++ : {0}", b); Console.WriteLine("a-- : {0}", c);
好的那么我們在分析一下:
首先來看第二行a++;自增符號++等于本身加1, 那么a = 1 ,執(zhí)行a++后(a 自身加1),a自身的值為2
那么在來看第四行a--;自薦符號--等于本身減1,那么a此時已經(jīng)等于2,執(zhí)行a--后(a自身減1),a自身的值為1
分析完之后還是讓結(jié)果來驗證答案吧!
二、賦值運算符
看完基本的算數(shù)運算符我們在來看一下什么是賦值運算符,其實在上邊的例子中我們已經(jīng)使用了賦值運算符,那什么是賦值運算符,對了就是為變量賦值的符號,也就是我們上邊例子中的等號。
那么賦值運算符就只有等號一個嗎?答案錯,C#還為我們提供了一些方便我們簡化表達式的復(fù)制運算符,如下表:
那么這些等號都代表什么意思呢?其實很簡答,來看一段代碼跟上邊例子坐下比較我們會發(fā)現(xiàn),這些賦值運算符就是幫我們簡化了表達式而已。
int a = 10; a = a + 10; //將a 的值賦予 a(10) + 10 //運算完成后a = 20 Console.WriteLine(" a=a+10; a={0}",a); a = 10; //在將a還原回10 a += 10; //等同于 a = a + 10; 將a 的值賦予 a(10) + 10 //運算完成后a還是等于 20 Console.WriteLine(" a+= 10; a={0}", a);
還是來分析一下:
1到4行大家一定都可以看明白,那么直接看地7行,你想對了,其實 a+=10 等同與 a=a+10 只是這個運算符簡化了表達式。 那么還是用事實來證明吧!
三、運算符優(yōu)先級以及括號的運用
說完運算符與表達我們來看看運算符之間的優(yōu)先級,什么是優(yōu)先級? 其實優(yōu)先級就是當我們表達式中出現(xiàn)多個運算符時,應(yīng)該先執(zhí)行哪個運算符,就好比數(shù)學中的先乘除后加減,那么C#中也不例外也是先乘除后加減。關(guān)于更多的優(yōu)先級我不打算在這里介紹,因為我們完全可以使用括號來提示表達式的優(yōu)先級()。對運算符優(yōu)先級感興趣可以參考C#相關(guān)書籍。那么還是用一個例子來描述下C#中加減乘除的優(yōu)先級吧!
int a = 10 * 2 - 10 / 2 + 3;//那么根據(jù)先乘除后加減的原則我們得到的結(jié)果應(yīng)該是 18
Console.WriteLine("10 * 2 - 10 / 2 + 3 結(jié)果為:{0}", a);
那么還是來分析一下,根據(jù)先乘除后加減的法則我們來看:
首先計算10 * 2 結(jié)果是20
在計算 10 / 2 結(jié)果是5
那么這個時候 表達式編程 20 - 5 + 3 ,這里要注意 加和減屬于同一級別運算符所以哪個在前面先運算
這個時候執(zhí)行 20 - 5 結(jié)果是 15
在執(zhí)行 15 + 3 結(jié)果為18 繼續(xù)用事實來證明我的分析。
那么好,這個時候我要是想讓10 * 3 在讓2 + 3 在去讓10除怎么辦? 不知道?代碼告訴你:
int a = 10 * 3 - 10 / (2 + 3);//這個時候()中的運算符優(yōu)先級最高所以先執(zhí)行括號中的表達式
Console.WriteLine("10 * 3 - 10 / (2 + 3) 結(jié)果為:{0}", a);
繼續(xù)來分析一下,根據(jù)括號優(yōu)先級最高的法則我們來看:
首先執(zhí)行(2 + 3) 結(jié)果是 5
在執(zhí)行 10 * 3 結(jié)果為 30
此時表達式為 30 - 10 / 5 除號優(yōu)先級高 先運算除法 表達式為 30 - 2
那么結(jié)果為28 看真相吧!
提示:了解運算符優(yōu)先級也很重要,不過有了括號大部分情況下我們可以自己控制優(yōu)先級,所以靈活合理的運用括號可以省去運算符優(yōu)先級帶來的復(fù)雜性。
相關(guān)文章
C#使用Dns類實現(xiàn)查詢主機名對應(yīng)IP地址
C#中的Dns類能夠與默認的DNS服務(wù)器進行通信,以檢索IP地址,這篇文章主要介紹了C#如何使用Dns類解析出主機對應(yīng)的IP地址信息,需要的可以參考下2024-02-02C#實現(xiàn)將窗體固定在顯示器的左上角且不能移動的方法
這篇文章主要介紹了C#實現(xiàn)將窗體固定在顯示器的左上角且不能移動的方法,涉及C#窗體固定操作的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-08-08RegexOptions.IgnoreCase正則表達式替換,忽略大小寫
RegexOptions.IgnoreCase正則表達式替換,忽略大小寫,需要的朋友可以參考一下2013-03-03C#使用itextsharp生成PDF文件的實現(xiàn)代碼
以下是對在C#中使用itextsharp生成PDF文件的實現(xiàn)代碼進行了詳細分析介紹,需要的朋友可以過來參考下2013-07-07使用C#實現(xiàn)基于TCP和UDP協(xié)議的網(wǎng)絡(luò)通信程序的基本示例
這篇文章主要介紹了使用C#實現(xiàn)基于TCP和UDP協(xié)議的網(wǎng)絡(luò)通信程序的示例,文中分別編寫了基本的服務(wù)器端和客戶端,代碼十分簡單,需要的朋友可以參考下2016-04-04