Java中if else、多重if、switch效率对比详细讲解

导读:本篇文章讲解 Java中if else、多重if、switch效率对比详细讲解,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

Java中if else、多重if、switch效率对比详细讲解

if语句、if else if语句和switch case语句都属于流程控制语句。

在只需要判断一个条件的时候,自然是使用if语句方便有效;但是当判断条件很多的时候,我们可以使用多个if语句或者if…else if语句或者switch case语句。

对于这三者的选择,下面将做一些具体分析;对于后两者的选择,又将涉及到程序执行效率的问题。

if…else if语句和多个if语句的区别还是很大的,if...else if在任何一个环节满足条件的时候就将会终止判断,只处理一个满足条件的情况;而对于多个if语句,将会对每一个判断条件进行判断,自然而然会导致程序的执行效率降低。在多个判断条件的情况下,使用if…else if语句相对于使用多个if语句而言,可以减少程序的判断次数,提高效率。

在多个判断条件的情况下,不仅可以使用if…else if语句,还可以使用switch case语句。一般情况下,当判断条件较多的情况下,使用switch case语句的效率会高于使用if...else if语句。switch…case与if…else if的根本区别在于,switch…case会生成一个跳转表来指示实际的case分支的地址,而这个跳转表的索引号与switch变量的值是相等的。从而,switch…case不用像if…else if那样遍历条件分支直到命中条件,而只需访问对应 索引号的表项从而到达定位分支的目的。所以从效率上来说由于if…else if的遍历性,代码执行效率是不高的。

总结

if …else⾛逻辑判断时,每条if语句都独⽴需要加载,都要⾛⼀遍判断。这就是耗时的机制问题了。

switch…case 根据⼀个值进⾏多路分⽀,只做⼀次计算,然后将表达式的值与每个case的值⽐较,进⽽选择哪⼀个case语句块。

switch只能处理case为常量的情况,对不是常量的情况是⽆能为⼒的。例如 if (a > 1 && a < 100)属于关系逻辑,是⽆法使⽤switch…case来处理的。

优先级排序(效率最高的):switch case、if else、多重if

大家根据实际业务来即可,不同语法实现的业务不同,请酌情选择

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/85610.html

(0)
小半的头像小半

相关推荐

半码博客——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!