C语言中有关switch语句中最后一个case的break要不要写的问题

本文讨论了在编程中使用switch语句时,特别是最后一个case是否需要添加break的必要性,根据不同情况给出了结论:无default时,不加break结果相同;有default时,必须加break以避免逻辑错误。
摘要由CSDN通过智能技术生成

前两天在学习switch语句的时候,发现了一个问题,就是关于最后一个case语句要不要写break。当时很迷茫就去网上浅浅的看了一下,发现搜索出来的都是一些case语句后面要不要写break,都没有找到一个关于最后一个case语句的break。今天我就来浅浅讨论一下这个switch语句中的case。

//switch 的语法结构
switch (整型表达式)
{
	case语句;
}

下面我就用输入一个数字打印相应星期的需求来讲这个问题。

如果我写成上面的代码形式,不管我输入的数字是多少都会执行,比如我输入一个1,我的本意只是想打印一下Mon这个字符串,但是为什么一下给我们打印这么多,完全违背了我的需求逻辑。

这是因为switch语句有个特性,叫做穿透性。我输入的数字只要满足其中一个case语句,那么就会从该case语句进入一直向下执行,直到遇到break或者switch语句结束才会停止。

在写switch语句的时候,除非有特殊情况,可以不在case后面加break,一般情况都应该在case后面加break。

下面看看重新改过的代码,写成这样就会满足我的需求。

现在我们就来说说今天的主题,最后一个case语句要不要加break的问题。

我们分为一下几种情况:

1、没有default的情况下,最后一个case不加break

根据情况1的图片中的结果显示,在没有default的情况下,最后一个case语句不加break也能得到我们想要的结果。 

2、没有default的情况下,最后一个case加break

根据情况2的图片中的结果显示,在没有default的情况下,最后一个case语句加了break也能得到我们想要的结果。  

3、有default的情况下,最后一个case不加break

根据情况3的图片中的结果显示,在有default的情况下,最后一个case语句不加break的时候就不能得到我们想要的结果。

4、有default的情况下,最后一个case加break

根据情况4的图片中的结果显示,在有default的情况下,最后一个case语句加了break也能得到我们想要的结果。

最后结论:

我们讨论的最后一个case语句要不要加break的结论分为两种情况。

1、在没有default的情况,最后一个case语句加不加break,结果都一样。

2、有default的情况下,最后一个case语句必须要加break,否则就会出现上面所述的第三种情况那样。

所以大家在写switch语句的时候,一定要在每个case语句后面加break,不管有没有default语句,都加一个break都不会错。

谢谢大家~,在这个太卷的时代大家一起努力。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值