一把梭系列 ~ C語言範例 (0008) [條件判斷: if/switch]

一把梭系列 ~ C語言範例 (0008) [條件判斷: if/switch]

一把梭系列 ~ C語言範例 (0008) [條件判斷: if/switch]


資料來源: 

https://openhome.cc/Gossip/CGossip/ifStatement.html
https://openhome.cc/Gossip/CGossip/switchStatement.html


★前言:


★主題:

    為了要讓程式可應付遇到的各種狀況,C 提供了 if和switch 條件判斷陳述,其語法模板如下:


    01.單行if 條件判斷陳述語法模板

    if (條件式) 
        陳述句一; 
    其他陳述句;


    02.單行if-else 條件判斷陳述語法模板

    if (條件式) 
        陳述句一; 
    else 
        陳述句二;    
    其他陳述句;


    03.單行if-else if 條件判斷陳述語法模板

    if (條件式) 
        陳述句一; 
    else if(條件式)
        陳述句二;
    else
        陳述句三;    
    其他陳述句;    


    04.多行if-else 條件判斷陳述語法模板

    if (條件式一) 
    { 
        陳述句一; 
        其他陳述句;
    } 
    else
    { 
        陳述句二;
    }    


    05.多行if-else if 條件判斷陳述語法模板

    if (條件式一)
    { 
        陳述句一; 
        其他陳述句; 
    } 
    else if(條件式二)
    { 
        陳述句二;
    }
    else
    {
        陳述句三;
    }


    06.switch 條件判斷陳述語法模板

    switch (變數名稱或運算式) 
    { 
        case 符合數字或字元: 
            陳述句一; 
            其他陳述句;
            break; 
        case 符合數字或字元: 
            陳述句二; 
            break; 
        default: 
            陳述三; 
    }    


★code:

#include <stdio.h>
#include <stdlib.h>

/*
學習使用Code::Blocks 中斷模式 藉此觀察 程式運作狀況
    01.啟用中斷模式前製作業 -確認 專案目錄/路徑 中 除了英數字和底線外沒有其他符號,中文也不行
    02.在專案點選滑鼠右鍵並點選『Build options』-> 勾選『Enable all compiler warnings .....(-Wall)』
    03.設置對應中斷點
    04.點選Debug/Continue(兩次)-第一次為編譯可以中斷模式,第二次進入中斷模式
*/

int main()
{
    //*
    //if單行系列
    int input = 0;
    int remain = 0;

    printf("輸入整數:");
    scanf("%d", &input);

    remain = input % 2;//設置中斷點(滑鼠右鍵)
    if(remain == 1)//設置中斷點(滑鼠右鍵)
        printf("%d 為奇數\n", input);//設置中斷點(滑鼠右鍵)
    else//設置中斷點(滑鼠右鍵)
        printf("%d 為偶數\n", input);//設置中斷點(滑鼠右鍵)
    //*/

    //*
    //if多行系列
    int score = 0;

    printf("輸入分數:");
    scanf("%d", &score);

    if(score >= 90) {
        puts("得 A");
        puts("繼續保持");
    } else if(score >= 80 && score < 90) {
        puts("得 B");
        puts("可以再努一下");
    } else if(score >= 70 && score < 80) {
        puts("得 C");
        puts("千萬不可以再鬆懈");
    } else if(score >= 60 && score < 70) {
        puts("得 D");
        puts("已經在懸崖邊了");
    } else {
        puts("得 E(不及格)");
    }
    //*/

    /*
    int score = 0;

    printf("輸入分數:");
    scanf("%d", &score);
    switch(score/10)
    {
        case 10:
            //puts("得 A+");
            //break;
        case 9:
            puts("得 A");
            puts("繼續保持");
            break;
        case 8:
            puts("得 B");
            puts("可以再努一下");
            break;
        case 7:
            puts("得 C");
            puts("千萬不可以再鬆懈");
            break;
        case 6:
            puts("得 D");
            puts("已經在懸崖邊了");
            break;
        default:
            puts("得 E(不及格)");
    }
    //*/
    return 0;
}

★結果:


★延伸說明/重點回顧:


    01.if系列判斷陳述語法,單行與多行的差別就在於是否有『{}』的區別,也就是說如果沒有『{}』則為單行判斷,則if-else的控制效力就僅限if-else語法的下一行;反之如果有『{}』符號,則控制效力就是『{}』符號中間的所有語法。

    

    02.switch-case判斷陳述語法,各case項目的執行效力就是從case語法開始到遇到break;結束


    PS.書本上都會建議:if系列判斷陳述語法儘量都寫成多行模式,因為這樣可以方便日後維護+閱讀

2 thoughts on “一把梭系列 ~ C語言範例 (0008) [條件判斷: if/switch]

  1. C/C++ 雜湊表(Hash table,也叫哈希表) 可以把字串變成整數 如此一來即可變成 switch條件判斷的選項了

jash.liao@qq.com 發表迴響 取消回覆

你的電子郵件位址並不會被公開。 必要欄位標記為 *