小工具知识网

当前位置: 首页 > 行业知识 > 【C语言初阶】switch语句的基本语法

行业知识

【C语言初阶】switch语句的基本语法

2026-10-19 08:42:34 来源:互联网转载
鸽芷咕:个人主页

�� 个人专栏:《速学C语言》《数据结构篇》 ⛺️生活的理想,就是为了理想的生活!


文章目录

  • 前言
      • switch语句的介绍
      • switch语句的语法形式
        • 在switch语句中的 break
        • default子句
        • switch语句的注意事项
        • 错误案例
          • switch( ) 的括号使用 浮点数
          • caes语句后面跟 变量
          • const 修饰的常变量可以嘛?
          • 总结

            前言

               hello! 各位宝子们大家好啊,又是新的一天开始了,今天给大家带来的switch语句的全面讲解!

               ⛳️预计博主这俩天会把分支语句和循环语句给彻底更新完,然后向函数出发!

               本期文章收录在《C语言初阶篇》,大家有兴趣可以看看呐!

              ⛺️ 欢迎铁汁们 ✔️ 点赞 收藏 ⭐留言 !

            switch语句的介绍

            前面的一篇:《if语句的详解》

            我们已经学会了if语句那么大家来看看这种情况:

            那么我们想编写一下这段程序该怎么办:

            输入1,输出星期一

            输入2,输出星期二

            输入3,输出星期三

            输入4,输出星期四

            输入5,输出星期五

            输入6,输出星期六

            输入7,输出星期日

            ✅ 如果用if的多分支来实现呢?

            代码演示;

            #include int main(){int day = 0;//输入scanf("%d", &day);if (1 == day)printf("星期1\n");else if (2 == day)printf("星期2\n");else if (3 == day)printf("星期3\n");else if (4 == day)printf("星期4\n");else if (5 == day)printf("星期5\n");else if (6 == day)printf("星期6\n");else if (7 == day)printf("星期天\n");elseprintf("输入错误\n");return 0;}
            • 大家发现没,用 if...else if ...else if 的形式太复杂,所以我们C语言就有了switch这个语法形式。

              switch语句:

              switch语句也是一种分支语句。常常用于多分支的情况。

              语法形式:

              switch(整型表达式){    case 整形常量表达式:    语句;}

              switch语句的语法形式

              前面我们给大家简单介绍了一下:

              switch语句的作用和语法形式那么该怎么使用呢?

              • ⛳️ 我们按照语法写看下对不对呢?
                #include int main(){int day = 0;//输入scanf("%d", &day);switch (day){case 1:printf("星期一");case 2:printf("星期二");case 3:printf("星期三");case 4:printf("星期四");case 5:printf("星期五");case 6:printf("星期六");case 7:printf("星期天");}return 0;}

                演示结果:

                诶大家会发现,这和我们预计的根本不一样?

                • 我们预计的是,按3之后只输出星期三。
                • 实际是,程序把星期三后面的全部都给输出了。
                • 这时就会需要我们的 break语句了
                • 下面我们来介绍一下它的作用
                  在switch语句中的 break

                  ⛳️在switch语句中,我们没办法直接实现分支,搭配break使用才能实现真正的分支。

                  而break是什么意思呢:

                  • break 英文意思是结束。
                  • 而我们前面出现的问题就是, case语句 没有结束
                  • 每次从我们选择的那个分支一直继续。
                  • 所以我们需要每次在 case语句 后面加上 break语句 结束就好了。

                    代码演示:

                    #include int main(){int day = 0;//输入scanf("%d", &day);switch (day){case 1:printf("星期一\n");break;case 2:printf("星期二\n");break;case 3:printf("星期三\n");break;case 4:printf("星期四\n");break;case 5:printf("星期五\n");break;case 6:printf("星期六\n");case 7:printf("星期天\n");break;}return 0;}

                    代码结果:

                    哦豁,这下我们是不是就把问题给解决了。

                    • 知识点
                    • 在 switch语句 中,caes是我们分支语句的入口。
                    • break 是我们分支语句的出口,跳出分支。

                      而有时候我们的需求变了:

                      该怎么编写呢?

                      1. 输入1-5,输出的是“weekday”;
                      2. 输入6-7,输出“weekend”

                      代码演示:

                      #include //switch代码演示int main(){    int day = 0;    switch(day)   {        case 1:        case 2:        case 3:        case 4:        case 5:            printf("weekday\n");            break;        case 6:        case 7:            printf("weekend\n");            break;   }    return 0;}

                      这样我们就完美解决问题啦!

                      default子句

                      ⛳️前面我们详细讲解了,switch语句:

                      • 但是有没有想过一个问题如果我们输入9会怎么样?
                        #include int main(){int day = 0;//输入scanf("%d", &day);switch (day){case 1:printf("星期一\n");break;case 2:printf("星期二\n");break;case 3:printf("星期三\n");break;case 4:printf("星期四\n");break;case 5:printf("星期五\n");break;case 6:printf("星期六\n");case 7:printf("星期天\n");break;}return 0;}

                        说明:

                        • 如果表达的值与所有的case标签的值都不匹配怎么办?
                          • 其实也没什么,结构就是所有的语句都被跳过而已。
                          • 程序并不会终止,也不会报错,因为这种情况在C中并不认为是个错误。
                          • 但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?
                          • 你可以在语句列表中增加一条default子句,把下面的标签
                          • default:
                          • 写在任何一个 case 标签可以出现的位置。

                            代码演示:

                            #include int main(){int day = 0;//输入scanf("%d", &day);switch (day){case 1:printf("星期一\n");break;case 2:printf("星期二\n");break;default:printf("输入错误!\n");}return 0;}

                            代码结果:

                            ⛳️ default的意思:

                            • 当 switch 表达式的值并不匹配所有 case 标签的值时
                            • 这个 default 子句后面的语句就会执行。
                            • 所以,每个switch语句中只能出现一条default子句。
                            • 但是它可以出现在语句列表的任何位置
                            • 而且语句流会像执行一个case标签一样执行default子句。

                              编程好习惯

                              在每个 switch 语句中都放一条default子句是个好习惯,甚至可以在后边再加一个 break 。

                              switch语句的注意事项

                              ⛳️ switch语句我们都介绍完了,但是这些细节可别忘记哦!

                              • switch( ) 的括号里面必须是 整形表达式
                              • caes语句 后面必须跟 整形表达式整形常量表达式
                              • 下面我给大家示范一下错误案例。

                                错误案例

                                switch( ) 的括号使用 浮点数

                                代码演示:

                                #include int main(){float day = 0;//输入scanf("%d", &day);switch (day){case 1:printf("星期一\n");break;case 2:printf("星期二\n");break;default:printf("输入错误!\n");}return 0;}

                                代码结果:

                                caes语句后面跟 变量

                                代码演示:

                                #include int main(){int day = 0;int n = 1;//后面的f表示是个浮点数一般建议加上//输入scanf("%d", &day);switch (day){case n:printf("星期一\n");break;case 2:printf("星期二\n");break;default:printf("输入错误!\n");}return 0;}

                                代码结果:

                                const 修饰的常变量可以嘛?

                                代码演示:

                                #include int main(){int day = 0;const int n = 1;//后面的f表示是个浮点数一般建议加上//输入scanf("%d", &day);switch (day){case n:printf("星期一\n");break;case 2:printf("星期二\n");break;default:printf("输入错误!\n");}return 0;}

                                代码结果:

                                注:在C++标准里面const修饰的常变量,就不在是一个变量了,而是一个常量所以在switch里面是可以跟在case后面的!

                                代码演示:

                                #include int main(){int day = 0;const int n = 1;//后面的f表示是个浮点数一般建议加上//输入scanf("%d", &day);switch (day){case n:printf("星期一\n");break;case 2:printf("星期二\n");break;default:printf("输入错误!\n");}return 0;}

                                代码结果:

                                注:.cpp是C++程序的后缀名。

                                总结

                                ✅ 归纳:

                                好了以上就是关于分支语句 switch 的用法,和注意事项就全部讲解完毕啦!

                                  switch的介绍

                                  switch的语法

                                  switch中的break

                                  default语句

                                  switch的注意事项

                                ☁️ 把本章的内容全部掌握,铁汁们就可以熟练应用switch语句啦!

                                看到这里了还不给博主扣个:

                                ⛳️ 点赞☀️收藏 ⭐️ 关注!

                                ❤️

                                拜托拜托这个真的很重要!

                                你们的点赞就是博主更新最大的动力!

                                有问题可以评论或者私信呢秒回哦。

上一篇:ofoapp怎么服务器繁忙了?

下一篇:苏大机房在哪里?