大家好,我是贠学文,点击右上方“关注”,每天为您分享java程序员需要掌握的知识点干货。
凌晨四点的北京
大家都知道,在java中,判断语句有if和switch两种,那么大家在日常的编码中,是更喜欢用if呢,还是更喜欢用switch呢?
我先说一下if与switch的区别吧
1.if可以支持任意场景,任意复杂的判断,但是switch只能支持一些简单的判断。
2.从底层实现逻辑上来讲,if只是顺序查找,所以当分支的条件特别多的时候,它的效率比较低。而switch底层采用的是精确查找或者二分查找,所以如果分支条件特别多时,它的效率要比if高。
上面两点是我总结的if和switch最主要的两个区别。也许有人会说:那就看看使用场景,如果当前场景不支持用switch,那就只能用if,如果当前使用场景支持使用switch,那么就用switch,这应该是最优的选择了。
但是在实际上,我并不是这么做的,我在编码中,从来没有使用过switch。为什么呢?因为switch虽然效率要比if高,但是这种效率的差异,只有在分支条件特别特别多的时候,才能体现的出来,但是如果分支条件特别的多了,这时你不管用if还是用switch,对后期的代码维护都是个灾难,此时的if和switch就都不适合用了,这时我们应该采用合理的设计模式,比如策略模式或者状态模式等等,来解决这个问题。
所以我使用判断的方式,是要看当前场景的分支条件数量,如果在五个以内,我会使用if判断,如果大于五个,我就会使用合理的设计模式来处理。至于switch,我从来都不会用。
往期精彩:
作者介绍:
贠学文,具有多有经验的java开发工程师,业余时间利用头条分享技术知识点与自己对技术的感悟,帮助对自己未来感到迷茫的程序员,在技术上得到提升。结识一些志同道合的朋友,相互促进,共同进步。
留言与评论(共有 0 条评论) “” |