C 語言多條件判斷完整教學|if、else if 與邏輯運算子範例解析

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;
}

提高條件式可讀性的技巧

  1. 使用括號:明確條件優先順序。
  2. 拆分條件:將複雜條件分配到變數中。

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 陳述式與多條件的用法,可以讓程式更靈活且高效。