iT邦幫忙

0

【從零開始的 C 語言筆記】第十七篇-if條件式

  • 分享至 

  • xImage
  •  

不怎麼重要的前言

上一篇介紹了二維陣列的概念,基本上陣列的使用方法都不會差太多,應該不算太難理解?

這次我們來介紹程式設計中很重要的--「if條件式」!


if條件式?

在日常生活中大家一定都有做過選擇,不管是參考商品價格來考慮要不要購買,或是交友軟體以條件來篩選交友對象,甚至是考卷不會寫於是擲骰子寫答案,基本上我們都做過各式各樣的選擇,但這樣的「條件選擇」在程式中也同樣被需要。

通常我們會依照資料的內容,不管是分數高低、年齡大小、興趣,來對資料進行不同的處理後輸出結果。

所以這時「if & else if & else條件式」就是很好用的語法了,如同以下例子:

if (score == 100){
    printf("A++\n");
}
else if (score >= 95){
    printf("A+\n");
}
else if (score >= 90){
    printf("A\n");
}
else if (score >= 80){
    printf("B\n");
}
else if (score >= 70){
    printf("C\n");
}
else if (score >= 60){
    printf("D\n");
}
else {
    printf("F\n");
}

當我們需要依照學生分數,給予不同結果時,我們會設下許多條件就像以上的應用方法,而它的流程則像是這樣的:
https://ithelp.ithome.com.tw/upload/images/20211028/20142565eq6npgFJak.png


正式使用

  1. 規則
    唯有清楚if條件式的使用方式,才能真正的好好使用它且幫助解決問題。

(1) 層層執行:條件式的規則一定要記住,不一定要鉅細靡遺但一定由鬆而緊,因為程式是由上而下一行行執行的,條件式也是由上而下層層判斷的,所以上面已經基本篩選過的情況下,其下的條件不一定要列的極細。

(2) 唯有條件為真(true)時,條件內的區塊才被執行

(3) 執行完符合條件的區塊後,會跳出整個條件式外,不會再繼續執行判斷。

(4) if & else if & else?
a. 只有if

if (k == 1){
    printf("Bingo!\n");
}

b. 只有if、else

if (k == 1){
    printf("Bingo!\n");
}
else {
    printf("Noting.\n");
}

c. 只有if、else if

if (k == 2){
    printf("Nice!\n");
}
else if (k == 1){
    printf("Cool!\n");
}

d. if、else if、if混合

if (k == 3){
    printf("Perfect!\n");
}
else if (k == 2){
    printf("Great!\n");
}
else if (k == 1){
    printf("Cool!\n");
}
else{
    printf("miss.\n");
}

e. 使用邏輯:
開頭的判斷式一定為if,而後面是否有更多條件則看情況使用else if、else,但在使用else的情況該判斷式一定壓尾,雖然不一定構成語法錯誤但關乎執行邏輯。

因為else不限定任何條件,且前面有提到只要整個if條件式中,任意條件符合且進入區塊執行完,則會直接跳出整個條件式外繼續執行,倘若else之後還有else if判斷式,則永遠不可能被執行。
https://ithelp.ithome.com.tw/upload/images/20211029/20142565q5g8bwauHN.png

  1. 應用
#include <stdio.h>
#include <string.h>

int main(void)
{
    int score;

    printf("input your score: %d", &score);
    scanf("%d", &score);
    
    if (score == 100){
        printf("A++\n");
    }
    else if (score >= 95){
        printf("A+\n");
    }
    else if (score >= 90){
        printf("A\n");
    }
    else if (score >= 80){
        printf("B\n");
    }
    else if (score >= 70){
        printf("C\n");
    }
    else if (score >= 60){
        printf("D\n");
    }
    else {
        printf("F\n");
    }

    return 0;
}

https://ithelp.ithome.com.tw/upload/images/20211029/20142565Jrr3BPXAp4.png


看到這裡我們就介紹完if條件式了,基本上我們會常常使用到它,所以熟悉這個語法基本上是必要的。

下一篇我們來介紹For Loop的概念吧!


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言