【从零开始的 C 语言笔记】第十七篇-if条件式

不怎麽重要的前言

上一篇介绍了二维阵列的概念,基本上阵列的使用方法都不会差太多,应该不算太难理解?

这次我们来介绍程序设计中很重要的--「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的概念吧!


<<:  JS 45 - 是否要离开网站?可能无法储存您所做的变更。

>>:  用Firebase Web的小功能分享 (2)

成为工具人应有的工具包-21 RegScanner

RegScanner 今天来认识看名字应该是注册表扫描?的小工具.... RegScanner 是可...

IOS、Python自学心得30天 Day-17 learning rate

前言: 经过多次的测试和训练 val_accuracy 在最後几乎都是处於0.6500左右的状态 所...

[Day 17] 实作-热门活动排行 List

嗨!昨天做好首页的图片轮播了 可能大家会疑惑 什麽时候才会串接api? 其实我个人习惯是把前端页面都...

[Day28]Solidity实作2

hi!昨天说完mapping大概的概念之後,今天就来实际做做看吧! 这次是参考这个连结的程序码进行...