【从零开始的 C 语言笔记】第二十三篇-Switch条件式

不怎么重要的前言

上一篇介绍了两个小题目,稍微带过解题的思路,以及多重迴圈(巢状迴圈)的概念。

现在我们来试着把所学的东西组合起来看看吧!


上次的小作业--九九乘法表

#include <stdio.h>int main(){    for(int i = 2; i<=9; i++){        for(int j = 1; j<=9; j++){            printf("%d x %d = %d\n", i, j, i*j);        }        printf("\n");    }    return 0;}

Switch条件式?

大家应该有学过if条件式了,基本上是一个需要判断式为true才执行的条件式,不晓得大家在写等同多个不同数值时,要执行不同结果的if条件式,有没有感觉到疲累感。

如同以下的if条件式:

#include <stdio.h>int main(){    char data;    printf("plz input a char: ");    scanf("%c", &data);    if (data == 'a'){        printf("mode 1.\n");    }    else if (data == 'b'){        printf("mode 2.\n");    }    else if (data == 'c'){        printf("mode 3.\n");    }    else{        printf("mode default.\n");    }    return 0;}

http://img2.58codes.com/2024/20142565H4NagRQoGS.png

如果是漫长的判断等同某个数值的if条件式,也可以转换为这种的switch条件式,虽然这个语法并不是必要学的,但有兴趣的话,跑出来的结果也会是一样的:

#include <stdio.h>int main(){    char data;    printf("plz input a char: ");    scanf("%c", &data);    switch (data){    case 'a':        printf("mode 1.\n");        break;    case 'b':        printf("mode 2.\n");        break;    case 'c':        printf("mode 3.\n");        break;    default:        printf("mode default.\n");    }        return 0;}

http://img2.58codes.com/2024/20142565yFGkBdofso.png


正式使用

规则

(1)基本格式

switch (data){case 'a':    printf("mode 1.\n");    break;case 'b':    printf("mode 2.\n");    break;case 'c':    printf("mode 3.\n");    break;default:    printf("mode default.\n");}

http://img2.58codes.com/2024/201425654BrVWfpeyO.png

(2) case的body结尾需补上break用以跳出switch,否则会出现问题。
a. break只会跳出switch条件式,而不执行剩下的。
http://img2.58codes.com/2024/20142565mSLKzLwkKe.png

b. 出现错误的範例(未加break)

#include <stdio.h>int main(){    char data;    printf("plz input a char: ");    scanf("%c", &data);    switch (data){    case 'a':        printf("mode 1.\n");    case 'b':        printf("mode 2.\n");    case 'c':        printf("mode 3.\n");    default:        printf("mode default.\n");    }    return 0;}

http://img2.58codes.com/2024/20142565PH81XLRmAw.png

应用
输入三次成绩并判断成绩等级为多少。
(可以看出在switch内的break只会跳出switch条件式,不会也跳出外面的for迴圈。)
#include <stdio.h>int main(){    int data;    for(int i = 0; i<3; i++){        printf("plz input a int: ");        scanf("%d", &data);        printf("Case %d: ", i+1);        switch (data/10){        case 10:            printf("A++\n");            break;        case 9:            printf("A\n");            break;        case 8:            printf("B\n");            break;        case 7:            printf("C\n");            break;        case 6:            printf("D\n");            break;        default:            printf("F\n");        }    }    return 0;}

http://img2.58codes.com/2024/20142565psrmieHCdx.png


看到这里就介绍完switch条件式的用法了,这是一个比较少使用到的语法,其实不会也没关係,不过有兴趣的话也可以使用看看。

下一篇我们来介绍程式设计的流程图怎么写吧!


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章