【C#學習筆記】【4】除了加減乘除,還有別的運算麼(算數運算子與邏輯運算子)

來源:互聯網
上載者:User

標籤:

本節的內容有點枯燥,但是很簡單,記住就行,就像小學時我們剛學加減乘除混合運算那樣。記住運算的優先性。(當然,如果你有C語言或其他基礎,可以跳過,但是我不建議你跳過)

算數運算子

什麼是算術運算子呢?當然就是做數學算數的啊,比如上節用到的加減乘除。下面介紹一些常用的運算子(+-*/我就不說了)。

取餘數運算子%

%可以當作運算子用,其含義是取餘數,也叫求模運算。例子如下:

int a=5;int b=3;int c=a%b;   //即5被3整除求出餘數,結果當然是2了Console.WriteLine(c);//運行結果為2
 偷懶運算子+=,-=,*=,/=,%=

這些運算子長得有點奇葩,但是含義很好理解,我先寫個例子:

int a = 5;a += 2;Console.WriteLine(a);a -= 2;Console.WriteLine(a);a *= 2;Console.WriteLine(a);a /= 2;Console.WriteLine(a);a %= 2;Console.WriteLine(a);

如果我在這裡告訴你,a+=2相當於是a=a+2的話,結果也就是7,那麼其他的你能猜到嗎?

我想你猜到了,這也是我為什麼稱這類運算子為偷懶運算子的原因,他可以簡化很多語句的寫法。當然,你不知道這些運算子不會影響你做其他的,因為,他只是簡寫。

暈暈的運算子++,--

其實,++和--理解起來一點都不難,只是他們在某些情況下會令你十分暈。

先來說一下其含義吧,++相當於+=1,也就是自身增加1,--就是自減1嘍。例如下面的程式:

int a=0;a++;   //即a=a+1;也是a+=1;Console.WriteLine(a);//運行結果是1

上面的例子中,我把++寫在了變數的後面。讀到這裡,是不是讀出些畫外音,難道++還可以寫在前面?你說對了。見下面的例子:

int a=0;++a;Console.WriteLine(a);//運行結果為1

看到這裡,是不是感覺鬱悶呢,兩種寫法並沒有什麼區別麼,結果都相同。那我下面再寫一個例子:

int a = 0;int b;int c = 0;int d;b = a++;d = ++c;Console.WriteLine(a);Console.WriteLine(b);Console.WriteLine(c);Console.WriteLine(d);

你運行上面的代碼了嗎?如果沒有,你可以先猜猜結果。結果如下

是不是和預想的結果不一樣呢?我們啟動並執行結果,a,b,c,d分別是1,0,1,1 。為什麼會出現上面的情況?這就是我說的會讓人暈的運算子。下面我詳細解釋一下。

如果++和--運算子在變數的前面,那麼,變數會先進行自增自減,然後再參與整個的運算。如果出現在變數的後面,那麼變數會先進行運算,在進行自增或者自減,結合上面的例子分析一下。

b=a++;這一句,由於自增運算子出現在了變數a的後面,所以,變數a先參與運算,也就是b=a這樣的賦值運算,此時的a=0,然後a才自增1 。也就出現了結果中的a=1,b=0;

d=++c;這一句,自增運算子出現在了變數前面,所以,變數先進行了自增也就是c=1,然後又賦值給d,所以c和d都等於1 。

你還在暈嗎?自己輸入代碼試試。算數運算子我就介紹這麼多。

邏輯運算子(關係運算子)

高中數學學過簡單邏輯運算吧,在集合的那一部分。簡易邏輯也就是與或非了。

先說個前文提到的,你還記得是什麼嗎?相等運算子==

==相等運算子

前面介紹過了,==會判斷左邊的是否等於右邊,如果相等,結果是true,如果不等,結果是fale,樣本如下。

bool b;b=3==2;Console.WriteLine(b);b=3==3;Console.WriteLine(b);//運行結果第一個為false,第二個為true

為什麼用bool類型變數存放結果呢?思考一下,存放真假的變數類型是什嗎?

> ,< ,>=,<=,!=運算子

有人說,前兩個我見過,大於和小於,那麼後三個是什麼呢?那就是大於等於,小於等於,不等於咯。因為我們在鍵盤上不容易輸入≤,≥,≠這三個符號。至於樣本程式,我就省略了,和上一個一樣,換一下符號就OK了。

&&,||,!運算子

以上三個分別為邏輯且,邏輯或,邏輯非,他們是用來串連兩個bool類型的值,並且給出最終運算值,其運算關係如下表:

運算子

結果

備忘

&&

true

true

true

全真即真

false

false

false

有假即假

false

true

false

true

false

false

||

false

false

false

全假即假

true

true

true

有真即真

false

true

true

true

false

true

!

-

true

false

真變假

-

false

true

假變真

上面的表叫做真值表,下面舉個簡單的例子:

bool b;int x = 2;int y = 3;int z = 2;b = x > y && x >= z;Console.WriteLine(b);b = x > y || x >= z;Console.WriteLine(b);b = ! (x > y);Console.WriteLine(b);

猜一下運行結果,並且自己運行程式驗證一下吧!

三元運算子 ?:

這個運算子長得很奇葩,又是問號又是冒號的,下面我先寫個例子,再說說這個幹什麼的:

int a = 0;int b = 1;int max = a > b ? a : b;int min = a < b ? a : b;Console.WriteLine(max);Console.WriteLine(min);//運行結果,第一個1,第二個0

是不是看出些眉目,我分別找出了a和b中的最大值和最小值。那麼這個三元運算子是幹什麼的呢?

問號前是一個邏輯運算式(就是帶邏輯運算子的式子了),如果這個邏輯運算式的結果是true,那麼程式會跳到?和:之間執行,如果問號前為false,那麼直接跳到:後面執行。下面解釋一下上面程式中取最大值的演算法。

先是a>b一個邏輯判斷,如果真,也就是a大於b了,那麼,就執行?後面的a,也就是max=a,如果a>b是假的,那麼最大值就是b,也就是:後面的,故max=b。

剛接觸這個有點難以理解,我們只需要記住有這麼個運算子就行了。在以後的例子中會再提到。

運算子的優先性(混合運算的優先法則)

在下表中列出的優先順序從高到低(比如乘除的優先順序高於加減)

運算子 說明
x++,x-- 後自增自減
+x,-x,!x,++x,--x 正號,負號,非,前自增,前自減
*,/,% 乘法,除法,取餘
+,- 相加,相減
>,<,>=,<= 大於,小於,大於等於,小於等於
==,!= 相等,不相等
&&,||,?: 邏輯且,邏輯或,三元運算子
= 賦值運算子
+=,-=,*=,/=,%= 複合賦值運算

如果出現同級的運算子,則按照從左至右的順序計算。

當然,你可以用()來改變運算順序,就像我們數學裡的括弧。需要注意的是,小括弧外面還可以使用小括弧,而不是中括弧或者大括弧。

在實際運用中,如果不記得運算順序,我們可以添加括弧,來保證我們的運算結果和我們的預想結果相同。

變數命名方式(上節的補充)

這部分本來應該在前文寫,由於怕內容過多,寫在了今天的內容裡。

如果你學過C語言你可能有這樣的體會,聲明變數時,一會兒,a,一會兒又是b的,等一會兒回頭看,a是啥玩意兒來著?所以給變數起個好的名字,有助於我們理解程式,也能統一代碼風格。下面講兩種常見的命名方式。(如果你有更好的方法或者不採用一下方法,那我也沒招)

Pascal命名方式(帕斯卡)

在這種方式中,我們將變數中的每個單詞的首字母大寫,如UserName(使用者名稱),StudentNumber(學號),是不是很直觀的就能知道變數的含義呢?當然,我們的變數不採用這種命名方式,這種方式用在以後學的類,介面,方法,屬性中用。

Camel命名方式(駱駝)

這種方式和上一種的區別就是首單詞的首字母小寫,如userName,studentNumber。這種方式是我們給變數命名的常用方式。

合法的變數名稱

不是任一字元都可以作為變數名稱的。只能是字母或者底線(_)開頭,後面可以接任意的字母和數字還有底線,至於長度,你自己一個變數名稱寫上幾百個字母能記得住嗎?還有就是不要用關鍵字做變數名稱,例如我們前面學的int,double這些,以後還會學到一些。要注意,C#會嚴格區分大小寫,UserName和userName是兩個變數。

總結
  1. 算數運算子指的是什麼,有哪些常用的
  2. ++和--在變數前後的區別
  3. 什麼是邏輯運算子,都有哪些
  4. 瞭解三元運算子,他是唯一的一個
  5. 運算子的優先性
  6. 補充的變數命名的問題

【C#學習筆記】【4】除了加減乘除,還有別的運算麼(算數運算子與邏輯運算子)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.