C語言簡介:條件判斷

本教學面向新手,故教學內容多為基礎知識,倘若您希望學習進階內容,本文並不符合您的需求。

本文為C語言簡介系列第二篇文章,前一篇文章為C語言簡介:基本輸入輸出

如果…(if)

我們生活中很多時候會依照不同情況做不同的決定,例如我們說

如果明天早上下雨了,我就帶雨傘出門。

這裡我們可以看到,「下雨」是我們的「條件」,而有沒有帶雨傘則是條件滿足或不滿足所帶來的結果。

語法

那我們要怎麼使用「如果…」的條件判斷呢?
我們可以使用 if 來實作,語法如下

if (<條件>) {
<若滿足條件要執行的程式>
}

當條件為 true,或是說「成立」時,if 裡面的程式,也就是我們上面寫的 <若滿足條件要執行的程式> 才會執行。

註:在 C 語言中,條件判斷其實是看「運算結果是否為 0」:0 代表 false,非 0 代表 true。如果想在程式碼裡直接寫 truefalse,則需要引入 stdbool.h

如果…不然的話就… (if - else)

延續剛剛的例子,如果我們說

如果明天早上下雨了,我就帶雨傘出門;不然的話我就戴墨鏡出門。

這樣要如何表示呢?
我們可以用 else 來表示類似「不然的話」,或者是說「否則」的概念。
語法:

if (<條件>) {
<若滿足條件要執行的程式>
} else {
<要執行的程式>
}

所以我們可以根據上面的文意寫出一段pseudo-code

if (明天早上下雨) {
帶雨傘出門;
} else {
戴墨鏡出門;
}

試試看

請試寫一段程式,當使用者輸入偶數時,印出 even number,否則印出 odd number

範例輸入1

3

範例輸出1

odd number

範例輸入2

4

範例輸出2

even number

如果…不然的話如果…不然的話… (if - else if - else)

假設今天我們說

如果便當一份100元(含)以下我就吃便當,不然的話要是早餐店A套餐一份100元(含)以下我就吃早餐店A套餐,如果以上條件都沒辦法滿足,那我就去早餐店吃「豬排漢堡 + 薯條 + 紅茶」。

我們可以怎麼用pseudo-code表示?
先來說語法,if - else if - else 的語法長這樣

if (<條件>) {
<若滿足條件要執行的程式>
} else if (<條件>) {
<若滿足條件要執行的程式>
} else {
<要執行的程式>
}

所以pseudo-code應該長得像是這樣

if (便當價格 <= 100) {
吃便當;
} else if (早餐店A套餐價格 <= 100){
吃早餐店A套餐;
} else {
去早餐店吃「豬排漢堡 + 薯條 + 紅茶」;
}

試試看

請試寫一段程式,若使用者輸入之數大於 100,則輸出 bigger than 100,否則若使用者輸入之數大於等於 50,則輸出 bigger than or equal to 50,否則輸出smaller than 50

參考解答

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
int main() {
int n = 0;
scanf("%d", &n);
if (n > 100) {
printf("bigger than 100");
} else if (n >= 50) {
printf("bigger than or equal to 50");
} else {
printf("smaller than 50");
}
return 0;
}

What if…

如果將條件順序顛倒,意即先判斷使用者輸入之數是否大於等於 50,再判斷使用者輸入之數是否大於 100,輸出會有所不同嗎?

結語

以上就是C語言條件判斷簡介。
倘內容有誤或仍有疑問,歡迎在下方留言區留言!