C# 運算子 Operator

在C#中,提供了數學及邏輯演算,在本篇將大致認識C#的各式運算子

指定運算子

在C#中," = "的意思和數學上的等於是不同,在這裡是表示指定的意思,就是將右邊的值指定給左邊的變數

 {
    // 將100指定給變數num
    int num = 100;

    // 將num + 1000後,指定給左邊的變數total
    int total = num + 1000;
 }

 

一元運算子

就是一個運算元就能運算的運算子

運算子 " + ",正數

ex. +50

運算子 " - ",負數

ex. -num

運算子 " ! ",否定

ex. !temp (表示temp為false)

 

算術運算式

在運算上會和數學邏輯一樣的順序

運算優先順序 :

括號內 => 乘 / 除 / 取餘數 => 加 / 減

乘 ( 運算子符號 : * )

{
   int a = 10;
   int b = 20;
   int c = a * b;

   double num = 10.56;
   double total = num * 10.33;

   Console.WriteLine(c); // 輸出c為200

   Console.WriteLine(total); // 輸出total為109.0848

}

除 ( 運算子符號 : / )

{
  double num = 10;
  double total = num / 1000;

  int a = 15;
  int b = 8;
  int number = a / b;
  
  Console.WriteLine(total); // 輸出total為0.01
  Console.WriteLine(number); // 如果是int型別,則輸出時會取整數,捨去小數點後數值,number為1
}

取餘數 ( 運算子符號 : % )

{
   int a = 15;
   int b = 8;
   int c = a % b;
 
   Console.WriteLine(c); // 輸出c值為7
}

加 ( 運算子符號 : + )

{
  int a = 20;
  int b = 8;
  int c = a + b;

  string temp = "hello";
  string mystring = "world";

  Console.WriteLine(c); // 輸出c為28
  Console.WriteLine(temp + mystring); // 如果是字串,則輸出為 helloworld
  
}

減 ( 運算子符號 : - )

{
   int a = 10;
   int b = 8;
   int c = a - b;

   int x = 20;
   int y = 60;
   int z = x - y;

   Console.WriteLine(c); // 輸出c為2
   Console.WriteLine(z); // 輸出z為-40

}

 

關係運算子

主要是用於比較數值、字串,等資料大小的關係,並得到結果true或false,通常會搭配 if 進行程式執行的流程

相等 ( 運算子符號 : == )

大於 ( 運算子符號 : > )

小於 ( 運算子符號 : < )

大於等於 ( 運算子符號 : >= )

小於等於 ( 運算子符號 : <= )

不等於 ( 運算子符號 : != )

 

邏輯運算子

且 ( 運算子符號 : && )

A && B  => 兩邊條件都必須為true,即兩邊條件都必須符合時,才成立

或 ( 運算子符號 : || )

A || B  => 只要A或B其中一個為true,則成立

否 ( 運算子符號 : ! )

A => 表示A為true

! A => 加上!,表示A為false

 

複合指定運算子

相加後指定 ( 運算子符號 : += )

x += 8   =>  x = x + 8

相減後指定 ( 運算子符號 : -= )

x -= 8   =>  x = x - 8

相乘後指定 ( 運算子符號 : *= )

x *= 8   =>  x = x * 8

相除後指定 ( 運算子符號 : /= )

x /= 8   =>  x = x / 8

取餘數後指定

x %= 8   =>  x = x % 8

 

遞增、遞減運算子

後遞增

x = y++   =>   先執行x = y,再執行y = y + 1

前遞增

x = ++y   =>   先執行y = y + 1,再執行x = y

z = ++x*2  =>  先執行 x + 1,再將 x * 2,再指定給 z

後遞減

x = y--   =>   先執行x = y,再執行y = y - 1

z = y--/5  =>  先執行 y / 5,再指定給 z,再執行 y - 1

前遞減

x = --y   =>   先執行y = y - 1,再執行x = y

 

 

新人發文,文章敘述如有錯誤及觀念不正確,請不吝嗇指教,感謝~

參考文件 https://docs.microsoft.com/zh-tw/dotnet/csharp/language-reference/operators/