【入門級】-[運算]

【入門級】-[運算]

更新於 發佈於 閱讀時間約 5 分鐘

  程式中很常會看到千奇百怪的運算式,這些運算式都隱藏著各種運算元和運算子,這些是什麼呢?讓我們來一探究竟。

  運算元是指變數、常數這類(如:A、B、C、Data、123等),運算子是指運算符號(如:+、-、*、/、%、==、<、&&等這類型),這邊就要介紹C#的運算子以及怎麼使用。

  那麼運算特性可以分為算術運算、遞增與遞減運算、關係運算、邏輯運算、位元運算、移位運算、複合指定運算、三元運算。由於這麼多的運算式,倘若說一個運算式同時有眾多的運算元該怎麼辦?數學是先乘除後加減,那程式呢?最後會說明運算元的優先順序不用擔心,接下來就一一來跟大家分享。


一、算術運算


  時常看到的加、減、乘、除還有餘數這些一般數學上都會看到的運算在程式中稱為「算術運算」。用圖表來跟大家說明,請看下圖。

(先假設整數變數A=17、B為運算結果)

算術運算

算術運算


二、遞增與遞減運算


  這就是連續使用++或--來做運算,它有區分成「前置式」、「後置式」兩種,前置式運算子在前(ex:++A),後置式運算子在後(ex:--A)。

  既然都是數學運算已經有了算術運算為何還要有遞增與遞減運算呢?我猜想應該是因為可以縮短程式的長度,當變數很長的時候,可以藉由遞增遞減運算來縮短程式長度吧!很多程式很常都會用到或看到,不妨我們就來看一看,請看下圖。

(先假設整數變數A=17、result為運算結果)

遞增與遞減運算

遞增與遞減運算

我覺得比較好記的方式是:

遇到"++"or"--"的時候,先看變數在哪裡,
此運算子在變數前,就先做"+ 或 -",
運算子在變數後,就先讓變數賦予result值。

如果不好記也可以用自己的方式記也沒問題。


三、關係運算


  這邊可以做為判斷的依據,就是去做比較可以是數字大小、也可以是變數的值大小做判斷它的結果值只會出現兩種:真(true或1)、假(False或0),這兩種答案也就是資料型態中的bool,我們就來看一看它的運算子有哪些吧!如下圖:

(假設整數變數為A=5、B=10)

關係運算

關係運算


四、邏輯運算


  這個運算可以做一些更複雜的條件判斷,結果也是只有兩種:真(true或1)、假(False或0)兩個答案而已。通常會用在兩者關係運算式中間,例如:(a > b) && (c > d),這類型的連結,那麼有哪些邏輯運算子可以用呢?如圖所示:

(這邊假設整數變數X、Y,以0代替假(False),以1代替真(True))

邏輯運算

邏輯運算



五、位元運算


  這個運算是要將數值先轉為二進制再做運算,最後再轉回十進制,那麼有哪些運算子如圖所示:

(假設整數變數A=3、B=6)

Step1:先轉二進位,也就是A=0011,B=0110
Step2:再看運算子做運算。

位元運算

位元運算



六、移位運算


  這個運算也是要先轉二進制後再做移位動作有左移”<<”和右移”>>”兩種。如圖所示:

(先假設整數變數A=24,二進制也就是00011000)

移位運算

移位運算

注意:
當左移的時候,後面都是補0;
當右移的時候,若沒有帶符號的狀況下,前面都是補0,若有帶符號並且是負數的話,前面就是補1。


七、複合指定運算


  這個運算就是將一個常數、變數或運算後的值指定給某個變數。最簡單的就像是:B = 5; 這樣的式子,就是把常數5指定給B這個變數,也就是給予B這個值。類似像這樣的運算有哪些呢?

(先假設整數i=3、j=9)
(二進制 i=0011 、j=1001)

複合指定運算

複合指定運算


八、三元運算


  這是利用Bool方式的條件式來判斷決定要傳回哪一個值,文字太難懂,用例子來說明:

result = A > B ?C :D
假如A>B是正確的(true),則result = C;
假如A>B是錯誤的(false),則result =D。

它的語法是這樣:

變數 = 條件判斷 ? 變數1 :變數2
條件判斷若為true,則輸出為變數1
條件判斷若為False,則輸出為變數2


這樣的方法也等同於if....else...的判斷句

if(A > B)
  result = C;
else
  result = D;


九、運算子的優先順序


  運算子都介紹完啦~接下來就來說說這些運算的優先順序:

運算子的優先順序

運算子的優先順序


OK~運算的部分就介紹到這邊啦~
下次會說流程控制這部份,也就是if...else...、switch...等等

avatar-img
橙果杏的沙龍
23會員
43內容數
Hello~ Welcome to my blog~❤ 這邊會分享我在程式這條道路中的學習與成長, 過程中從而了解自己的不足,再學習。 希望透過分享的方式, 也讓正在學習程式的夥伴們一起學習, 我們一起加油吧~ 「彼此都會成為彼此之間的影響力」(´,,•ω•,,)♡ ❣
留言
avatar-img
留言分享你的想法!
橙果杏的沙龍 的其他內容
一、什麼是WinSocket? 也就是大家常說的WinSock全名為Windows Sockets API (WSA),它會透過TCP/IP通訊協定來做網路的通訊,會用在Windows操作系統上來開發網路應用的API(應用程式介面)   二、WinSocket用在哪裡?   Socket可以
當我們架好站、WebService測試完,接著就是測試區域網路連線啦~
前面已經安裝好IIS後,並且也新建站台了,那麼接下來這篇就會分享如何使用它
一、什麼是WinSocket? 也就是大家常說的WinSock全名為Windows Sockets API (WSA),它會透過TCP/IP通訊協定來做網路的通訊,會用在Windows操作系統上來開發網路應用的API(應用程式介面)   二、WinSocket用在哪裡?   Socket可以
當我們架好站、WebService測試完,接著就是測試區域網路連線啦~
前面已經安裝好IIS後,並且也新建站台了,那麼接下來這篇就會分享如何使用它