加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

if else和switch case那个效率更高一点

发布时间:2021-07-06 06:13:48 所属栏目:大数据 来源: https://www.jb51.cc
导读:switch...case写法: switch (表达式){ case 值1 : 语句1 break ; case 值2 : 语句2 ; ... default : 语句n ; } if...else写法: if (boolean){ } else else { } 由此看来,switch有点以空间换时间的意思,而事实上也的确如此。 1.当分支较多时,当时用switc

switch...case写法:

switch (表达式){ 
case 值1 : 语句1 break; 
case 值2 : 语句2 ; 
... 
default : 语句n ; 
}

if...else写法:

if(boolean){
 
}else else{
 
}

由此看来,switch有点以空间换时间的意思,而事实上也的确如此。
1.当分支较多时,当时用switch的效率是很高的。因为switch是随机访问的,就是确定了选择值之后直接跳转到那个特定的分支,但是if。。else是遍历所以得可能值,知道找到符合条件的分支。如此看来,switch的效率确实比ifelse要高的多。
2.由汇编代码可知道,switch...case占用较多的代码空间,因为它要生成跳表,特别是当case常量分布范围很大但实际有效值又比较少的情况,switch...case的空间利用率将变得很低。

3.switch...case只能处理case为常量的情况,对非常量的情况是无能为力的。例如 if (a > 1 && a < 100),是无法使用switch...case来处理的。所以,switch只能是在常量选择分支时比ifelse效率高,但是ifelse能应用于更多的场合,ifelse比较灵活。

?

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读