前两天在学习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都不会错。
谢谢大家~,在这个太卷的时代大家一起努力。