第 6 課 - 基本計算

本課介紹

此課主要在教如何進行基本的加減乘除計算
以及複合運算子與遞增預算子的介紹

教學影片

重點提示

  1. +-*/ 分別代表加、減、乘、除的意思
  2. 在 C# 裡面計算數學就只要單純地將數學式列出來就可以了,但是算式務必要在等號的右側,左側則是儲存結果的變數
  3. 除法要是遇到無法整除的情形,它仍會計算到小數點後
  4. 如果你試圖要將小數存入 int (整數) 變數裡面,C# 會自動省略小數點之後,只留下整數的部分存進變數裡面
    • 例如下面程式碼計算結果應為小數的 3.75,但是因為 a 被宣告為整數,所以最後只會存入整數的部分 3
      int a;
      a = 30 / 8;
      
  5. 如果你單純只想算除法的「餘數」的話,可以使用 % 這個符號,相當於數學的 mod 運算
  6. 下面這個式子
    number = number + 8;
    
    可以簡化為
    number += 8;
    
    這個做法可以同樣套用到 -*/% 這些符號上
  7. 如果今天只需要做單純「遞增」或「遞減」的計算,可以使用
    number++;
    number--;   
    
    上面分別代表 number 加一與減一 (注意:只能用於加減一的情況)

補充

計算結果

假設今天你寫了一個四則運算的式子,像是 12 + 30 * 23 - 21 這樣。那他的計算結果會跑到哪裡去呢?事實上,C# 在計算的時候,會依照優先順序把上述的結果一次一次地計算出來。然後再存入「=」左邊的變數裡。

像是 12 + 30 * 23 - 21 (別忘記先乘除後加減的原則) 就會先變成 12 + 690 - 21 ,再轉變成 702 - 21 ,再轉變成 681,最後再存進變數裡。所以其實電腦也沒聰明多少,他們計算的方法跟我們是差不多的。

整數變數

在影片中可以看到,我們把像是 30 / 8 這種除完後會出現小數 3.75 的計算結果硬是存入整數變數中,就會發生小數點後的 .75 不見,只留下 3 的結果。因此如果今天要把小數完整地保留下來,就必須要使用「小數的變數」。關於這點後面的章節會提到。

優先順序

這些計算符號 + - * \ % ,甚至 =++這些符號,都被稱作為「運算子」(Operator)。C# 一看到運算子,就會依照他的計算邏輯把運算子左右兩邊的值抓出來做計算。那麼為了要使結果正確,並且有規則可循。每個運算子都有優先的順序。

像是我們熟悉的「先乘除、後加減」也是 C# 使用運算子的優先順序之一,所以它就會先計算 * / % 的結果,再去計算 + - 的結果。比較少人注意到的是, = 的優先順序是很低的,所以 C# 才會等算式的結果都出來之後才把值存入變數裡。

詳細的優先順序可以參考下面的連結。

相關資訊連結

C# 運算子優先順序和關聯性

https://learn.microsoft.com/zh-tw/dotnet/csharp/language-reference/operators/#operator-precedence