原语法
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;}
