当前位置:   article > 正文

switch与if-else的区别_if else 和switch的区别

if else 和switch的区别

switch与if else的执行效率

单从JVM的执行效率上讲的话,switch的执行效率要高于if语句:

原因在于:switch语句在运行时,首先会生成一个“跳转表”来指示实际的case分支的地址,而这个“跳转表”的索引号与swtich中的case值是相等的,这样的话,switch就不用像if else那样,遍历所有的条件,直至找到正确条件,而仅仅只需要访问对应索引号的表项就可以到达定位分支的目的。

简单的说,switch会生成一个数据统计表,将case后面的值全部统计起来,匹配时先拿表中的数据进行比较,如果有则直接跳转到相应case语句;如果没有,则直接跳转到default语句

那if else呢?其实刚刚我们已经简单的说了其工作流程,这里再次说明一下:

if else语句需要一条一条的去进行取值范围的判断,直到找到正确的选项位置,这样的话势必会浪费大量的时间。

所以,单从其运行的效率来看,switch语句要更胜一筹。

总结

这里简单的总结一下:

1.switch语句由于它独特的case值判断方式,使其执行效率更高,而if else语句呢,则由于判断机制,导致效率稍慢。

2.到底使用哪一个选择语句,和当前的代码环境有关,如果是范围取值,则使用if else语句更为快捷;如果是确定取值,则使用switch更是一个不错的选择。

所有好的程序都是经过不断思考,不断琢磨,付出努力,最终得以完成的。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号