可以使用 switch 命令的地方都可以使用 if 替换( switch可以支持int、byte、char、short,最后都会转化为int进行比较。jdk1.5后添加了对Enum类型的支持。jdk1.7后添加了对String类型的支持)。可以使用 if 的场景并不一定可以使用 switch (例如:if(a>1 && b < 3) 类似的多条件判读等).
- int a = 0;
-
- if (a > 0 && a < 10){
- // todo
- } else if (a >= 10) {
- // todo
- } else {
- // todo
- }
-
- switch(a){
- case 0:
- // todo
- break;
- case 1:
- // todo
- break;
- default:
- // todo
- break;
- }
注意事项
1)使用if条件判断时,避免同时使用多个if判断,尽量使用if、else if、else 的组合判断
2)使用switch时注意在分支判断中添加break
if VS switch
1)if 可以替换 switch, switch 不可以替换 if 【判断条件的类型,判断分支条件的多少】
2)多分支判断时, switch 效率高于 if 【switch随机访问,可以直接跳到特定分支。if 需要遍历判断】