【C语言初阶】switch语句的基本语法
  kM1XnpRJhmGi 2023年11月02日 137 0

(文章目录)

前言

  <font color = green > 🌈hello! 各位宝子们大家好啊,又是新的一天开始了,今天给大家带来的switch语句的全面讲解!</font>   <font color = green > ⛳️预计博主这俩天会把分支语句和循环语句给彻底更新完,然后向函数出发!</font>   <font color = Orange > 📚本期文章收录在《C语言初阶篇》,大家有兴趣可以看看呐!</font>   <font color = purple>:tent: 欢迎铁汁们 :heavy_check_mark: 点赞 👍 收藏 ⭐留言 📝!</font>

💬 switch语句的介绍

📌<font color = red>前面的一篇:</font>《if语句的详解》 <font color = purple>我们已经学会了if语句那么大家来看看这种情况:</font>

📚 <font color = Orange>那么我们想编写一下这段程序该怎么办:</font>

输入1,输出星期一 输入2,输出星期二 输入3,输出星期三 输入4,输出星期四 输入5,输出星期五 输入6,输出星期六 输入7,输出星期日

✅ <font color ="7B68EE" size=4>如果用if的多分支来实现呢?</font>

<font color =red size=3>代码演示; </font>

#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...else if ...else if 的形式太复杂,所以我们C语言就有了switch这个语法形式。

📜 <font color="#00dd00">switch语句:</font>

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

📑语法形式:

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

💬 switch语句的语法形式

<font color = green>前面我们给大家简单介绍了一下: switch语句的作用和语法形式那么该怎么使用呢?</font>

  • ⛳️ <font color="#006666">我们按照语法写看下对不对呢?</font>
#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;
}

📚 演示结果: 在这里插入图片描述 📌<font color = red>诶大家会发现,这和我们预计的根本不一样?</font>

  • 🌱 <font color = Orange>我们预计的是,按3之后只输出星期三。</font>
  • 🌱 <font color = red>实际是,程序把星期三后面的全部都给输出了。</font>
  • 🌱 <font color =Orange>这时就会需要我们的 <font color ="#66CDAA"> break语句</font>了</font>
  • 🌱<font color = Orange>下面我们来介绍一下它的作用</font>
💭 在switch语句中的 break

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

📚 <font color="#006666" size=4>而break是什么意思呢:</font>

  • 🌲 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;
}

👑 代码结果: 请添加图片描述 <font color="#660000">哦豁,这下我们是不是就把问题给解决了。 </font>

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

💡 <font color = red size=4>而有时候我们的需求变了:</font>

📚 <font color = green size=3.5>该怎么编写呢?</font>

  1. 输入1-5,输出的是“weekday”;
  2. 输入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;
}

🐣 <font color ="7B68EE">这样我们就完美解决问题啦! </font>

💭 default子句

⛳️<font color = Orange>前面我们详细讲解了,switch语句</font>

  • 但是有没有想过一个问题如果我们输入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标签的值都不匹配怎么办?
    • 🌱 <font color="#660000"> 其实也没什么,结构就是所有的语句都被跳过而已。</font>
    • 🌱 <font color="#660000">程序并不会终止,也不会报错,因为这种情况在C中并不认为是个错误。</font>
    • 🌱 <font color="#dd0000">但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?</font>
    • 🌱 <font color="7B68EE">你可以在语句列表中增加一条default子句,把下面的标签</font>
    • default:
    • 🌱 <font color="7B68EE">写在任何一个 case 标签可以出现的位置。</font>

📑 代码演示:

#include <stdio.h>
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;
}

👑 代码结果:

请添加图片描述 <br/> ⛳️ <font color="#006666">default的意思:</font>

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

📝 <font color="#660000"> 编程好习惯</font>

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

💬 switch语句的注意事项

⛳️ <font color="7B68EE">switch语句我们都介绍完了,但是这些细节可别忘记哦!</font>

  • 🌱 switch( ) 的括号里面必须是 ==<font color="#dd0000">整形表达式</font>==
  • 🌱 caes语句 后面必须跟 ==<font color="#dd0000">整形表达式整形常量表达式</font>==
  • 下面我给大家示范一下错误案例。

💬错误案例

💭switch( ) 的括号使用 浮点数

📚 代码演示:

#include <stdio.h>
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 <stdio.h>
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 <stdio.h>
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;
}

📑 代码结果: 请添加图片描述 🔥 ==<font color = red>注:在C++标准里面const修饰的常变量,就不在是一个变量了,而是一个常量所以在switch里面是可以跟在case后面的!</font>== 📚 代码演示:

#include <stdio.h>
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;
}

📑 代码结果:

请添加图片描述

🔥 ==<font color = red>注:.cpp是C++程序的后缀名。</font>==

总结

✅ 归纳: 好了以上就是关于分支语句 <font color = "#660000">switch</font> 的用法,和注意事项就全部讲解完毕啦!   switch的介绍   switch的语法   switch中的break   default语句   switch的注意事项 :cloud: <font color="#006666">把本章的内容全部掌握,铁汁们就可以熟练应用switch语句啦!</font> <font color ="7B68EE">看到这里了还不给博主扣个: ⛳️ 点赞:sunny:收藏 :star: 关注</font> 💛 💙 💜 ❤️ 💚💓 💗 💕 💞 💘 💖 <font size = 5 face = "华文彩云" color =red>拜托拜托这个真的很重要!</font> <font color="#660066">你们的点赞就是博主更新最大的动力!</font> <font color="#660066">有问题可以评论或者私信呢秒回哦。</font> 在这里插入图片描述

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  4WdcduV19eWs   2023年11月02日   65   0   0 ios#includeios#include
  4WdcduV19eWs   2023年11月02日   62   0   0 ios#includeios#include
  4WdcduV19eWs   2023年11月02日   66   0   0 ios#includeios#include
  4WdcduV19eWs   2023年11月02日   54   0   0 ios#includeios#include
  4WdcduV19eWs   2023年11月02日   43   0   0 ios#includeios#include
  ZydNzX6XOBO2   2023年11月02日   110   0   0 出队C++ci#include
  4WdcduV19eWs   2023年11月02日   66   0   0 ios#includeios#include
  4WdcduV19eWs   2023年11月02日   89   0   0 ios#includeios#include
  ZydNzX6XOBO2   2023年11月02日   50   0   0 i++C语言#include
  4WdcduV19eWs   2023年11月02日   51   0   0 ios#includeios#include
  4WdcduV19eWs   2023年11月02日   78   0   0 #includelinuxlinux#include
kM1XnpRJhmGi