原语法
switch(variable){
case 1:
do something;
break;
case 2:
do something;
break;
default:
do something;
}
switch 接受 int
,short
,byte
,char
这四个基本类型的值,当值匹配分支会执行分支代码。default
是在不匹配任何所给条件时执行的代码。break
用于当前分支结束时跳出分支,否则会继续执行后续其他分支代码。
语法糖
Java5——枚举
在Java5
中,为switch语句添加枚举变量的支持。传入的必须是对应枚举类型的变量。
enum Signal{
RED,
YELLOW,
GREEN
}
Signal color = Signal.RED;
switch(color) {
case RED:
color = Signal.GREEN;
break;
case YELLOW:
color = Signal.RED;
break;
case GREEN:
color = Signal.YELLOW;
break;
}
Java7——String
在Java7
中,为switch语句添加String类型的支持。
底层实现上,第一步通过hashcode
进行分支选择,内层再嵌套if
判断字符串相同。
switch(str){
case "str1":
do something;
break;
case "str2":
do something;
break;
default:
do something;
}
Java12——->
写法
Java12
中新增->
语法糖,在这种情况下不需要带break
语句以跳出代码块。
switch(variable){
case 1 -> do_something;
case 2 -> {
do_something;
}
default -> do_something;
}