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

没有break,但不符合为什么还能执行呢?

一、不加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语句

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-06

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

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

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

switch(conditions)
{
    case ...:
     doSomething();
     break;
    case ...:
     doAnotherThing();
     break;
    default:
     defaultThing();
}

第2个回答  推荐于2017-09-11
这样的原因是,有时几种情况需要相同处理,比如: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;
}本回答被提问者和网友采纳
第3个回答  2013-04-19
这就是大多数机器语言的规则,一直运行到break才会跳出,但也有少数的语言会默认加上break,比如matlab
第4个回答  2020-05-09

switch某个符合条件的case后不加break,为什么会执行后面不符合case的语...
一、不加break就不会跳出switch结构,不管后面条件是否符合都会执行,直到遇到第一个break才会跳出switch结构 二、switch起到的作用类似于跳转,满足switch的条件会跳转到对应的case下执行代码。如果不加break,代码会从那开始执行,一直执行到最后,所以不符合case的语句也会被执行。三、一个标准的switch、ca...

switch某个符合条件的case后不加break,为什么会执行后面不符合case的语...
case c:} 当D满足a时,会执行a列,继续运行没发现break;然后往下运行,运行b,再运行c,知道switch语句结束

switch语句后面不加break结果是什么?
switch语句后不加break,那么代码会一直顺序执行下去(忽略后面的case条件判断),直到break或是end语句

SWITCH语句中如果执行了一条CASE语句是空的后如果没有BREAK会不会执行...
会执行,如果case后面没有break;就会一直执行下去,直到有break为止;如果还没有就会执行到default语句,结束switch语句。如果不在 case 的语句段最后写上 break 的话,代码将继续执行下一个 case 中的语句段,因此,break语句的添加需要根据程序的逻辑来选用,如果有需要程序执行连续执行符合条件的case中的...

C语言:switch语句中没有break的情况?如图,明明grade与case3 之后的cas...
匹配到某一个case后,若该case的分值没有break语句,则会继续执行下一个case分值。直到遇到第一个break,或者整个swith语句执行完。

C语言里switch语句为什么case后面有的加Break有的不加?
case后面的常量表达式实际上只起语句标号作用,而不起条件判断作用,即“只是开始执行处的入口标号”。因此,一旦与switch后面圆括号中表达式的值匹配,就从此标号处开始执行;而且执行完一个case后面的语句后,若没遇到break语句,就自动进入下一个case继续执行,而不再判断是否与之匹配,直到遇到break语句才...

C语言里switch语句为什么case后面有的加Break有的不加?
这是因为switch的case语句是用来根据满足条件从确定的行开始执行的,如果不加入break语句跳出switch逻辑,则会一直往下执行,这也是为什么上面的测试代码会出现传入参数为2时会输出2、3和default。为此,我们也可以看一下上面的代码编译后的class文件,通过eclipse打开后,我们可以看到如下内容:上面编译后的语...

写switch case语句不加break会怎样
switch 语句 中 case 几 冒号,相当于 入口指示牌, 若 不加break; 则 从 入口case 进入后,接着会依次通过所有后续 case 指示牌 和语句,直到 switch 语句 结束处。例如:n=2; switch(n) { case 1: x=9; case 2: x=7; case 4: x=12; defualt: x=8;} 将从 case 2: 进入...

C语言switch case不加break一直往下执行,可是为什么下面的case里都不...
这个case可以看成是标号 goto语句明白吧 goto s1 s1:s2:s2一样会被执行 标号也可以看成地址

关于C语言switch语句的break问题
c语言的switch语句是穿透的= = 也就是说当程序判断某个case的条件为真后,它将在执行该case所带的的语句块之后不再对后面的case的条件进行判断而直接执行。所以将第一个break去掉并输入0之后程序判断第一个case的条件为真,输出e,再继续执行第二个case后的语句,又输出e,之后遇到break语句退出switch...

相似回答