2012年12月29日 星期六

小山的 C# 教學-第6課-基本計算

本課簡介

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

教學影片

注意:影片有高畫質 720P 的選項,可以看得更清楚喔!



重點提示

1. 「+ - * /」分別代表「加減乘除」的意思

2. 在 C# 裡面計算數學就只要單純地將數學式列出來就可以了,但是算式務必要在等號的右側,左側則是儲存結果的變數

3. 除法要是遇到無法整除的情形,它仍會計算到小數點後

4. 如果你試圖要將小數存入 int(整數) 變數裡面,C# 會自動省略小數點之後,只留下整數的部分存進變數裡面

5. 注意第三、第四點,像是這種程式碼
int a; a = 30 / 8; 那最後 a 裡面只會存入 8 而已,因為 a 是整數變數

6. 如果你單純只想算除法的「餘數」的話,可以使用「%」這個符號

7. 下面這個式子
number = number + 8; 可以簡化為
number += 8; 「- * / %」也有相同的寫法

8. 如果今天只需要做單純「遞增」或「遞減」的計算,可以使用
number++; number--; 這種寫法,上面分別代表 number 加一、減一

注意:「++」只適用於「+1」的情況

補充

計算結果

今天你寫了一個四則運算的式子,像是「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# 運算子的列表

http://msdn.microsoft.com/zh-tw/library/6a71f45d%28v=vs.80%29.aspx

1 則留言:

  1. 你好,有個小錯誤,那最後 a 裡面只會存入 8 而已,因為 a 是整數變數
    修正:a應該是3喔!

    謝謝你的教學

    回覆刪除