欢迎光临
我们一直在努力

ifelse和switch的运行效率谁高

编译器编译switch与编译if…else…不同。不管有多少case,都直接跳转,不需逐个比较查询。
switch在判断分支时,没有判断所有的可能性,而是用一个静态表来解决这个问题,所以速度要比if-else快。
但是,switch对较复杂的表达式进行判断,所以当我们需要判断一些简单数值时,用switch较好。
相比于if-else结构,switch的效率绝对是要高很多的,但是switch使用查找表的方式决定了case的条件必须是一个连续的常量。而if-else则可以灵活的多。
可以看到if-else只是单纯地一个接一个
比较,效率比较低

可以看出,switch的效率一般比if-else高
switch效率高,从汇编代码可以看出来
switch只计算一次值,然后都是test,jmp,
if…else是每个条件都要计算一遍的.

switch的效率与分支
数无关当只有分支比较少的时候,if效率比switch高(因为switch有跳转表)分支比较多,那当然是switch

未经允许不得转载:第五博客 » ifelse和switch的运行效率谁高
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

更专业 更方便

联系我们