目次
1. 前言
C 語言是一種簡潔但功能強大的程式語言,被廣泛應用於各種領域。其中,「條件分支」是控制程式執行流程的重要功能。特別是使用 if 陳述式來處理多個條件的方法,是實現複雜邏輯不可或缺的技巧。
本文將以淺顯易懂的方式,詳細說明如何在 C 語言中使用 if 陳述式指定多個條件,從基本結構到應用範例都有涵蓋,適合初學者參考。
2. C 語言 if 陳述式的基本結構
什麼是 if 陳述式?
if 陳述式用來判斷指定條件是否為「真」,若條件成立,則執行特定處理。在 C 語言中,if 陳述式的語法如下:
if (條件式) {
// 條件為真時要執行的程式
}
基本範例
以下範例判斷變數 x
是否為正值:
#include <stdio.h>
int main() {
int x = 10;
if (x > 0) {
printf("x 是正值。\n");
}
return 0;
}
此程式碼在 x
大於 0 時會執行 printf
。
if 條件式的重點
- 條件式可結合數值、變數與邏輯運算子(
&&
,||
,!
)。 - 在 C 語言中,條件式的結果若非 0 則視為「真」,為 0 則視為「假」。
3. C 語言中的邏輯運算子種類與作用
什麼是邏輯運算子?
當需要同時處理多個條件時,必須使用邏輯運算子來組合條件。C 語言中主要有以下三種邏輯運算子:
邏輯 AND(&&
)
- 當兩個條件皆為「真」時成立。
- 例:判斷變數
a
是否介於 10 到 20 之間。
if (a >= 10 && a <= 20) {
printf("a 在 10 到 20 之間。\n");
}
邏輯 OR(||
)
- 任一條件為「真」即可成立。
- 例:判斷變數
b
是否為 0 或 100。
if (b == 0 || b == 100) {
printf("b 是 0 或 100。\n");
}
邏輯 NOT(!
)
- 反轉條件,「假」變「真」,「真」變「假」。
- 例:判斷變數
c
是否不等於 0。
if (!(c == 0)) {
printf("c 不等於 0。\n");
}
注意事項
- 組合邏輯運算子時,應使用括號提高可讀性。
- 例:
(a > 0 && b < 10) || c == 5
4. 在 C 語言中組合多個條件的方法
什麼是多條件組合?
C 語言中可在 if 陳述式內組合多個條件,讓邏輯更簡潔。通常會搭配邏輯運算子(&&
, ||
)與括號。
多條件組合範例
以下範例在 x
介於 10 到 20 之間且 y
小於 30 時,執行特定處理:
#include <stdio.h>
int main() {
int x = 15;
int y = 25;
if ((x >= 10 && x <= 20) && y < 30) {
printf("x 在 10 到 20 之間,且 y 小於 30。\n");
} else {
printf("不符合條件。\n");
}
return 0;
}
提高條件式可讀性的技巧
- 使用括號:明確條件優先順序。
- 拆分條件:將複雜條件分配到變數中。
5. 使用 else if 進行條件分支
什麼是 else if?
透過 else if,可以依序檢查多個條件,並根據不同情況執行相應處理。
else if 範例
#include <stdio.h>
int main() {
int num;
printf("請輸入數字: ");
scanf("%d", &num);
if (num > 0) {
printf("輸入的數字是正值。\n");
} else if (num < 0) {
printf("輸入的數字是負值。\n");
} else {
printf("輸入的數字是 0。\n");
}
return 0;
}
6. 巢狀 if 的進階條件分支
巢狀 if 範例
#include <stdio.h>
int main() {
int x = 10;
int y = 5;
if (x > 0) {
if (y > 0) {
printf("x 和 y 都是正值。\n");
} else {
printf("x 是正值,但 y 不是正值。\n");
}
} else {
printf("x 不是正值。\n");
}
return 0;
}
7. 實務範例|多條件判斷的示範程式
範例 1:檢查數值是否在範圍內
#include <stdio.h>
int main() {
int number;
printf("請輸入數字: ");
scanf("%d", &number);
if (number >= 10 && number <= 20) {
printf("輸入的數字在 10 到 20 之間。\n");
} else {
printf("輸入的數字不在範圍內。\n");
}
return 0;
}
8. 常見問題(FAQ)
Q1. 為什麼多條件判斷沒有生效?
- 原因:沒有正確理解條件式的優先順序。
- 解決方法:使用括號明確表示條件意圖。
9. 總結
掌握 C 語言中 if 陳述式與多條件的用法,可以讓程式更靈活且高效。