C# Online ! 第十八篇:C# 運算子來嘍 PartV ~ 運算子的『運算優先順序』

  • 5198
  • 0
  • C#
  • 2011-07-08

C# Online ! 第十八篇:C# 運算子來嘍 PartV ~ 運算子的『運算優先順序』

大家好! 之前介紹了那麼多的運算子,大家大概都知道他們的用途了,不過在使用運算子的時候,跟算數學公式的時候一樣,都有運算的優先順序,所以這篇就要跟大家介紹運算子的運算優先順序,先用表格的方式來整理之前所介紹過的運算子以及他們的優先順序吧! 如下表:

 

優先程度

運算子

++ , -- (放在字首時); () +, - (一元), !, ~

* ,  / , %

+ , -

<< , >>

< , > , <= , >=

== , !=

&

^

 |

&&

||

= , *= , /= , %= , += , –= , <<= , >>= , &= , ^ = , |=

++ , -- (放在字尾時)

 

接下來舉個例子,一起來看看吧:

 

var1 = var2 <= 4 && var2 >= 2;

 

以上的例子,我們可以對照上面表格運算子的優先順序,就會知道哪邊必須先去做運算,所以我們會先去運算 var2 <= 4 ,接著是 var2 >= 2,然後是以上兩個運算後的值去做&&運算,最後是把&&運算後的結果給 var1,當然我們也可以跟數學公式一樣,使用( ) 來改變他們的運算順序,一樣是用以上的例子,我們加入 ( ) 來指定他們的優先順序,加了括弧以後,運算的順序也會看得比較清楚:

var1 = (var2 <= 4) && (var2 >= 2);

 

括弧內的必須先做運算,這樣子運算的順序有沒有更清楚了呢?

 

小提醒:運算的順序如果搞錯了,可是會大大的影響寫程式時思考邏輯上的錯誤,所以要小心喔!

 

備註:

  1. 除了指派運算子以外,所有的二元運算子都具有左順序關聯性,也就是說,運算方向是從左到右。例如,a + b + c 的運算順序方式為 (a + b) + c
  2. 指派運算子和條件式運算子 ?:(往後會介紹到) 是右順序關聯,也就是說,運算方向是從右到左。例如,a = b = c 的運算順序方式為 a = (b = c)

 

 

希望資深的前輩們與跟我一樣剛開始想學習C#的初心者,可以給我一些建議跟鼓勵,或是幫我按個讚!您的鼓勵就是我的動力! 感謝您們 ~

 

(本文中相關內容有參閱、引述MSDN)

 

 

 

 

 


如果這篇文章對您有幫助,請幫我點選「我要推薦」、按個讚、或是幫我推到其他平台;您的鼓勵將會是我繼續努力的一大動力!!

若是有任何指教或是需要討論之處,也不用客氣,請在下面留言給我,我將會儘速回覆~

Share | . . . . . . . . . .