switch更适用于有确切值的选择
if else更适合用于进行范围判断的内容。
单从JVM的执行效率上讲的话,switch的执行效率要高于if语句:
原因在于:switch语句在运行时,首先会生成一个“跳转表”来指示实际的case分支的地址,而这个“跳转表”的索引号与swtich中的case值是相等的,这样的话,switch就不用像if else那样,遍历所有的条件,直至找到正确条件,而仅仅只需要访问对应索引号的表项就可以到达定位分支的目的。
参考原文:https://zhuanlan.zhihu.com/p/67810198