switch语句里不需要必须有break吗
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了switch语句里不需要必须有break吗相关的知识,希望对你有一定的参考价值。
switch语句里不需要必须有break。
当变量表达式所表达的量与其中一个case语句中的常量相符时,就执行此case语句后面的语句,并依次下去执行后面所有case语句中的语句,除非遇到break;语句跳出switch语句为止。若常量表达式的量与所有case语句的常量都不相符,将继续执行default语句中的语句,然后结束switch语句。
扩展资料:
switch语句非常有用,但在使用时必须谨慎。所写的任何switch语句都必须遵循以下规则:
1、只能针对基本数据类型中的整型类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。
2、switch()的参数类型不能为实型 。
3、case标签必须是常量表达式(constantExpression),如42或者'4'。
4、case标签必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。
参考技术A 下面是switch的和break的使用方法:没有break的话,除非你能对条件进行精确控制,不然还要这switch有何用?int i = 5;
switch(i)
case 0:
System.out.println("0");break;
case 1:
System.out.println("1");break;
case 2:
System.out.println("2");break;
default:
System.out.println("default");break;
情况一:若未找到,则执行默认的case。即全部都有break的时候输出:defalut
情况二:当每一个case都不存在break时,JVM并不会顺序输出每一个case对应的返回值,而是继续匹配,匹配不成功则返回默认case。即全部都没有break的时候会输出:defalut
情况三:当每一个case都不存在break时,匹配成功后,从当前case开始,依次返回后续所有case的返回值。即不存在break和当i=1的时候,会输出1,2,defalut
情况四:若当前匹配成功的case不存在break,则从当前case开始,依次返回后续case的返回值,直到遇到break,跳出判断。即当i=1且i=1的case里面没有break的时候,会出现从符合条件的地方输出,直到break跳出。本回答被提问者采纳
switch语句
格式:
switch语句 Switch(条件表达式){ case 常量1: 语句1; break; case 常量2: 语句2; break; ... case 常量n: 语句n; break; default: 语句: break; //最后这个break可以省略 }
switch条件表达式类型,与case常量类型必须一致
switch条件表达式的类型限byte、short、int、string、enum
示例:
class SwitchDemo { public static void main(String[] args) { char c=‘b‘; switch (c) { case ‘a‘: System.out.println("周一"); break; case ‘b‘: System.out.println("周二"); break; case ‘c‘: System.out.println("周三"); break; case ‘d‘: System.out.println("周四"); break; case ‘e‘: System.out.println("周五"); break; case ‘f‘: System.out.println("周六"); break; default: System.out.println("周日"); break; } } }
输出:
周二
示例2:
满足条件的case中,所有代码都会执行
class SwitchDemo { public static void main(String[] args) { char c=‘a‘; switch (c) { case ‘a‘: System.out.println("周一"); int a,b; a=b=3; int d=a+b; System.out.println(d); break; case ‘b‘: System.out.println("周二"); break; case ‘c‘: System.out.println("周三"); break; case ‘d‘: System.out.println("周四"); break; case ‘e‘: System.out.println("周五"); break; case ‘f‘: System.out.println("周六"); break; default: System.out.println("周日"); break; } } }
输出:
周一
6
示例3:
满足条件后,遇到break时,才跳出执行语句
class SwitchDemo { public static void main(String[] args) { char c=‘c‘; switch (c) { case ‘a‘: System.out.println("周一"); break; case ‘b‘: System.out.println("周二"); break; case ‘c‘: System.out.println("周三"); //break; case ‘d‘: System.out.println("周四"); //break; case ‘e‘: System.out.println("周五"); //break; case ‘f‘: System.out.println("周六"); break; default: System.out.println("周日"); break; } } }
输出:
周三
周四
周五
周六
switch中的类型可以是String
class SwitchDemo { public static void main(String[] args) { String c="周一"; switch (c) { case "周一": System.out.println("周一"); break; case "周二": System.out.println("周二"); break; default: System.out.println("不知道"); break; } } }
输出:周一
switch中的类型可以是byte
class SwitchDemo { public static void main(String[] args) { byte c=2; switch (c) { case 1: System.out.println("周一"); break; case 2: System.out.println("周二"); break; default: System.out.println("不知道"); break; } } }
输出:周二
switch中的类型可以是short
class SwitchDemo { public static void main(String[] args) { short c=1111; switch (c) { case 1111: System.out.println("周一"); break; case 2222: System.out.println("周二"); break; default: System.out.println("不知道"); break; } } }
输出:周二
以上是关于switch语句里不需要必须有break吗的主要内容,如果未能解决你的问题,请参考以下文章
Java中为啥我写switch语句,在case后加break就错误,不加就正确,很困惑,