switch某个符合条件的case后不加break,为什么会执行后面不符合case的语句?

没有break,但不符合为什么还能执行呢?... 没有break,但不符合为什么还能执行呢? 展开
 我来答
请让我好好路过
推荐于2019-09-04 · TA获得超过6099个赞
知道答主
回答量:22
采纳率:0%
帮助的人:5962
展开全部

一、不加break就不会跳出switch结构,不管后面条件是否符合都会执行,直到遇到第一个break才会跳出switch结构

二、switch起到的作用类似于跳转,满足switch的条件会跳转到对应的case下执行代码。

如果不加break,代码会从那开始执行,一直执行到最后,所以不符合case的语句也会被执行。

三、一个标准的switch、case写法如下: 

switch(conditions)

{

case ...:

doSomething();

 break;

case ...:

doAnotherThing();

break;

default:

defaultThing();

}

四、在 switch 语句中使用break语句将终止语句的序列。当遇到 Break语句时,程序将整个 switch 语句后面的一行代码处开始执行,就有一种跳出switch 语句的效果。

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

switch 语句的使用在多选择的时候要比 if else 执行效率要高   

扩展资料

switch语句执行时会从上到下根据括号中表达式的值作比较,当某个case语句中的表达式与此值相同时,就执行这个case语句或语句序列,直到遇到break为止。

break语句是必须有的,它用来结束switch语句的执行。如果所有case语句后面的表达式都不等于switch语句的表达式expr1的值川0执行default后面的默认语句序列。

不过,default部分是可选的。如果没有这一部分,并遇到所有case语句都不匹配,那么,就不作任何处理而进入后续程序段的执行。 

可见,一个switch语句可以代替多个if-else语句组成的分支结构,而switch语句从思路上显得更清晰。 

使用switch语句时,要注意expr1必须是符合byte,char,short,int类型的常量表达式,而不能用浮点类型或long类型,//(也不能为一个字符串)。 (jdk7后,允许String)

1 switch(colorNum){
2 case 0:
3 setBackground(colo. red);
4 break;
5 case 1:
6 setBackground(color.green) ;
7 break;
8 default:
9 setBackground(color.black);
10 break;
11 }

switch还有一个用法:
1 switch(colorNum){
2 case 0:
3 case 1:
4 setBackground(color.green) ;
5 break;
6 default:
7 setBackground(color.black);
8 break;
9 }

参考资料——百度百科switch语句

lyz810
推荐于2017-10-06 · 知道合伙人互联网行家
lyz810
知道合伙人互联网行家
采纳数:7531 获赞数:31775
前端开发工程师

向TA提问 私信TA
展开全部

switch起到的作用类似于跳转,满足switch的条件会跳转到对应的case下执行代码。

如果不加break,代码会从那开始执行,一直执行到最后,所以不符合case的语句也会被执行。

一个标准的switch、case写法如下:

switch(conditions)
{
    case ...:
     doSomething();
     break;
    case ...:
     doAnotherThing();
     break;
    default:
     defaultThing();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cdyzxy
推荐于2017-09-11 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:84%
帮助的人:3581万
展开全部
这样的原因是,有时几种情况需要相同处理,比如:a=1,2,3时要执行a=2,a=0时执行语句a=1,否则执行语句a=3,则程序可以如下:
switch ( a )
{
case 0: a=1; break;
case 1:
case 2:
case 3: a=2; break;
default: a=3; break;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fancy1228
2013-04-19 · TA获得超过317个赞
知道小有建树答主
回答量:437
采纳率:0%
帮助的人:326万
展开全部
这就是大多数机器语言的规则,一直运行到break才会跳出,但也有少数的语言会默认加上break,比如matlab
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
看娱乐柠说了算
高粉答主

2020-05-09 · 关注我不会让你失望
知道小有建树答主
回答量:2939
采纳率:0%
帮助的人:77.5万
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式