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来处理
的。

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

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

在这里插入图片描述

(抽空在补充文字,大家有需求可以找我)
ok,我话说完

我的其他文章

亲身分享 一次 字节跳动 真实面试经历和面试题

其他薅羊毛网站

自己做的小商城,感兴趣可以相互讨论技术呀!

字节小柜:https://store.ityao.cn/

顺便说一下,国内又一款开源软件Wall,搭建特别简单,可以搭建个人照片墙和视频墙,有兴趣可以看下教程:https://blog.csdn.net/u014641168/article/details/129396364

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张童瑶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值