C#是一個強型別語言,在建立C#變數或常數時,要同時宣告它的類別型別(type)
也就是說,必需告知建立的變數是要用來儲存數字、文字或其他,不然C#會不知道開發者要叫它做什麼事啊~變數
,顧名思義就是指程式在執行的過程中,可以改變其值。而常數則一直保持不變
。
接著要來講C#的運算式、運算子的編碼系列。
先用張圖來解釋什麼是運算式、運算子
運算式是由運算元
和運算子
建構而成。運算式的運算子會指出要將哪些運算套用到運算元。
運算子範例包括 +、-、*、/ 及 new。
運算元範例包括常值
、欄位
、區域變數
及運算式
。
就跟數學的基本運算公式一樣,運算式=算式
,運算元=值
,運算子=加減乘除
另外,運算規則也是一樣,先乘除,後加減
。
C#提供一些運算子。內建類型支援其中許多,而且可讓使用這些類型的值來執行基本作業。這些運算子包含下列群組:
數值運算元
執行算數運算的算術運算子比較運算子
布林邏輯運算子bool
整數類型
的運算元來執行位or
移位運算的位and
移位運算子等號比較運算子
運算子有三種類型:
一元運算子:一元運算子會採用一個運算元,並使用前置詞標記法(例如: --x)或後置標記法(例如: x++)。
二元運算子:二元運算子接受兩個運算元,例如:x + y。
三元運算子:只有一個三元運算子,例如:Max=(a > b)? a:b,表示若 a > b是True,Max=a,反之Max = b。
即便是程式編碼,也是會有運算的優先運算順序層級
,下表依優先順序從最高到最低的順序來匯總所有運算子。
當兩個具有相同優先順序的運算子之間發生運算元時,運算子的關聯性會控制作業的執行順序:
1.除了指派運算子和null聯合運算子之外,所有二元運算子都是左關聯的,這表示作業是由左至右執行。
例如,x + y + z 會判斷值為 (x + y) + z。
指派運算子、null 聯合運算子和條件運算子(?:)都是靠右關聯的,這表示作業是由右至左執行。
例如,x = y = z 會判斷值為 x = (y = z)。
可以使用括弧來控制優先順序和關聯性。
例如,x + y * z 會先將 y 乘以 z,然後再將結果加到 x,而 (x + y) * z 則會先將 x 與 y 相加,然後再將結果乘以 z。
是不是跟數學運算很像,所以又要再上一次數學課了(咦!?)
比較運算子用於測試兩個運算元之間的關係,結果回傳布林值
邏輯運算子包含邏輯非
,施用於單一運算元
,其它邏輯且
、或
都需要兩個運算元
。
只有一個的|還有&,在進行判斷時,前後兩個運算元都會評估
。
兩個的||和&&,在進行判斷時,只有在必要時才會評估右邊的運算元
。
算術運算子可用在整數
及浮點數
,計算結果也為整數或浮點數。