switch语句中,case后面的语句序列中一定要有break语句吗?

为什么呢?可不可以详细点,谢啦

不一定的。

switch 语句一行接一行地执行(实际上是语句接语句)。开始时没有代码被执行。仅当一个 case 语句中的值和 switch 表达式的值匹配时才开始执行语句,直到 switch 的程序段结束或者遇到第一个 break 语句为止。

如果不在 case 的语句段最后写上 break 的话,代码将继续执行下一个 case 中的语句段,因此,break语句的添加需要根据程序的逻辑来选用,如果有需要程序执行连续执行符合条件的case中的代码,则不应该添加break而使得程序结束跳出。

扩展资料:

switch语句规则:

1、只能针对基本数据类型中的整型类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。

2、switch()的参数类型不能为实型 。

3、case标签必须是常量表达式(constantExpression),如42或者'4'。

4、case标签必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。

5、switch语句的语法如下(switch,case,break和default是关键字):

switch ( 变量表达式 ){

case 常量1 :语句;break;

case 常量2 :语句;break;

case 常量n:语句;break;

default :语句;break;

}

参考资料来源:百度百科-switch

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-11
在 switch 语句中使用break语句将终止语句的序列。当遇到 Break语句时,程序将整个 switch 语句后面的一行代码处开始执行,就有一种跳出switch 语句的效果。

break 语句是可选的,如果省略掉break 语句程序将执行下一条 case ,如果你需要使用多条 case ,你可以不用没有 break 语句。

switch 语句的使用在多选择的时候要比 if else 执行效率要高。本回答被提问者采纳
第2个回答  2010-03-26
最好跟上。因为switch的工作原理,一旦发现匹配,就一直执行,不在判断。

int A=2
switch(A)
{
case 1:printf("1");
case 2:printf("2");
case 3:printf("3");
case 4:printf("4");
default;
}
如若不加break,switch发现2匹配,首先执行
printf("2");
然后再不判断,
printf("3");
printf("4");
也执行了。这应该不是你的本意吧。所以最好每个case后面都加break。
第3个回答  2010-03-26
可以不有,那有几个case就会执行几个。举个例子:switch(k),case1:case2:case3假如有这3个case,如果没有break,当k=1时,这三个都会执行,当每个都有break时,k=1时,case2, case3就不会执行。
第4个回答  2010-03-26
你知道break的意思吗?如果没有break,程序还会继续走后面的判断
相似回答