另一种分支方式
对比if
if-else-if
依次判断,时间复杂度为O(n)
1 | String status = "success"; |
switch
形式上稍微简洁点,尤其当分支条件很多时,还有一定的性能提升
1 | String status = "success"; |
支持选项穿透,一定要注意跳出
原理
本质是一个查找过程,会编译成特殊的字节码
- 如果case项比较密集,会生成
tableswitch
指令,类似于用索引访问数组值,复杂度O(1) - 如果case项比较稀疏,会生成
lookupswitch
指令,由于候选项预先排序,进行二分搜索,复杂度O(logn)
支持类型
- 支持枚举
- 支持兼容int的类型,比如char,byte,short等,不支持long类型,大概是因为范围太大
- 支持基本类型的包装类
Java7
后语法支持字符串
一分也是爱~
版权声明
This site by Linest is licensed under a Creative Commons BY-NC-ND 4.0 International License.
由Linest创作并维护的博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。