前言
🌈hello! 各位宝子们大家好啊,又是新的一天开始了,今天给大家带来的switch语句的全面讲解!
⛳️预计博主这俩天会把分支语句和循环语句给彻底更新完,然后向函数出发!
📚本期文章收录在《C语言初阶篇》,大家有兴趣可以看看呐!
⛺️ 欢迎铁汁们 ✔️ 点赞 👍 收藏 ⭐留言 📝!
💬 switch语句的介绍
📌前面的一篇:《if语句的详解》
我们已经学会了if语句那么大家来看看这种情况:
📚 那么我们想编写一下这段程序该怎么办:
输入1,输出星期一
输入2,输出星期二
输入3,输出星期三
输入4,输出星期四
输入5,输出星期五
输入6,输出星期六
输入7,输出星期日
✅ 如果用if的多分支来实现呢?
代码演示;
#include <stdio.h> 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"); else printf("输入错误\n"); return 0; }
- 大家发现没,用
if...elseif ...else if的形式太复杂,所以我们C语言就有了switch这个语法形式。
📜 switch语句:
switch语句也是一种分支语句。常常用于多分支的情况。
📑语法形式:
switch(整型表达式) { case 整形常量表达式: 语句; }
💬 switch语句的语法形式
前面我们给大家简单介绍了一下:
switch语句的作用和语法形式那么该怎么使用呢?
- ⛳️ 我们按照语法写看下对不对呢?
#include <stdio.h> 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 <stdio.h> 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-5,输出的是“weekday”;
- 输入6-7,输出“weekend”
📜 代码演示:
#include <stdio.h> //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 <stdio.h> 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 标签可以出现的位置。


