、格式如下
switch(表达式){
case 字面值1:
代码块A;
break;
case 字面值2:
代码块B;
break;
…
default:
代码块X;
break;
}
switch
关键字表示“开关”,当表达式与case
后的字面值相等时,开关被打开,匹配的case
以后的代码会被执行。尤其需要注意的是,这个表达式的值只允许是byte
、short
、int
和char
类型(在JDK
7.0中表达式的值可以是String
类型)。
case
后必须要跟一个与表达式类型对应的常量,case
可以有多个,且顺序可以改变,但是每个case
后面的常量值必须不同。当表达式的实际值与case
后的常量相等时,其后的代码块就会执行。
default
表示当表达式的实际值没有匹配到前面对应的任何case
常量,default
后面的默认代码块会被执行,default
通常放在末尾。
break
表示跳出当前结构,必须注意:如果没有break
,”开关打开”后,随后每一个case
中的语句都会被执行,直到结构最末或者遇到break
。
总结:
在功能上,if
能够实现switch
的任何实现,但是在相同功能场景下,switch
要比if
速度更快。
switch
仅能适应等值判断,在必要时可以把区间判断转换为等值关系判断,如果不能转换还是老实用if-else
语法。
return
关键字为退出当前方法语句,而break
是退出特定结构。两者控制的范围不同。狭义理解,return