Java中为什么我写switch语句,在case后加break就错误,不加就正确,很困惑,

Java中为什么我写switch语句,在case后加break就错误,不加就正确,很困惑,难道加不加也有讨教?

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

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

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

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。

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

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

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

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

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-04-10
你的代码逻辑顺序有问题
第2个回答  2018-04-10
代码贴一下,理论上没有关系啊,是不是你写法有问题,贴代码

Java中为什么我写switch语句,在case后加break就错误,不加就正确,很困惑...
在 switch 语句中使用break语句将终止语句的序列。当遇到 Break语句时,程序将整个 switch 语句后面的一行代码处开始执行,就有一种跳出switch 语句的效果。break 语句是可选的,如果省略掉break 语句程序将执行下一条 case ,如果你需要使用多条 case ,你可以不用没有 break 语句。switch 语句的使用在...

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

java编程中,switch case 语句中 break编译时说是 无法访问的语句 怎 ...
你都return了,后面的break当然访问不到,所以 再break就没有意义了!要return就不要break,也break就不要retrun!建议:如果你的方法后边没有其他不想执行的代码,两个没有效率上的问题,如果有的话,建议你用return,因为你要用break只是跳出了这个 swith结构,后边的代码还会执行!

为什么switch中有的case后加break,有的不加?
这样的原因是,有时几种情况需要相同处理,比如: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;} 打字不易,如满意,望采纳。

JAVA 中的switch 语法使用 case后面能不能跟比较运算符,自己写了一个...
不行 值必须是int型的,或者是能够自动进行隐试转换成int型的表达式。也就是说可以是byte\/short\/char\/int型的 在jdk1.7以上好像可以使用String类型 bool类型是不可以的

请问for循环中的switch语句中case后用break还是continue??区别是什...
另外break的用处可以有两个:第一:用在switch结构当中的case语句的后面,作用是不再执行后面的case语句,结束switch结构。第二:用在循环当中,作用是终止该循环的执行,继续执行程序中循环下面的语句。switch语句如果是循环体的一部分,则可以有continue语句,实际上continue语句还是与循环语句合作的,否则...

java中,switch 的case和break问题
当case后面没有break语句的时候它是执行完本条语句后接着执行下一句,直到遇见break语句或者结尾 于是当m=0时它执行了case0,然后继续执行,当执行到case3时,遇见了break语句跳出switch 当m=3时直接执行case 3,然后跳出switch于是只能输出 Condition 3.所以答案只有abc ...

java中switch语句编译不成功,请问哪里出错了?
switch 后面的括号里的内容有问题啊,改成switch (i){...}看看 另外,你这个编程的语言要注意排版啊,switch 后面的case和下面的语句肯定要错开啊,方便检查问题在哪里,建议加强

相似回答