if结构和switch结构的区别

相同点

● if和switch都是Java里的分支选择语句,它俩都属于条件分支语句;

● 很多时候,if和swich可以实现的效果类似。

不同点

● switch结构只能处理等值条件判断的情况,且条件必须是整型、枚举变量或字符型变量;

● 多重if选择结构没有switch结构的诸多限制,特别适合某个变量处于某个连续区间时的情况;

● if比switch应用范围更广、更灵活。if可以实现的条件判断,switch不一定能够实现;switch可以实现的条件判断,if肯定可以实现。

● if 在应用中更为常见,但switch的结构更清晰。

● switch使用查找表比对的方式,使得case的条件必须是连续的常量,if语句则没有这些限制。

一般情况下,switch比if-else效率更高。因为switch内部使用了Binary Tree算法,不管有多少个case,都只计算一次值,直接跳转,不需逐个比较查询,除非是if-else的第一个条件就为true。

● switch的效率其实与分支数无关。只有当分支比较少时,if语句的效率才比switch高,因为switch有跳转表。当分支较多时,推荐使用switch语句。

所以如果你以后再遇到条件判断,知道该怎么选择实现了吗?在接下来的文章中,壹哥会带领大家继续学习循环结构~

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值