c语言学习笔记 多级else if 和switch case有什么区别

 

int option=0;

if(option ==0)

{

  dosth();

}

else if(option==1)

{

  dosth2();

}

else if(opion==2)

{

  dosth3();

}

else

dosth4();

如果给option的一个值是2的话,那么程序会判断option是否等于0 ,再判断option是否等于1 最后再判断option等于2,多执行了两个判断,当然了,如果直接把option==3的判断放在最前面,那么就执行一次判断就可以了。

 

int option=0;
switch(option){
case 0:
    dosth1();
    break;
case 1:
    dosth2();
    break;
case 2:
    dosth3();
    break;
default:
    dosth4();
   break;
}

把多级elseif改成switch case的话,程序执行的时候就没有判断了,直接就到了option==2的代码处了,可能耗费更少的CPU,更环保了。

其实有点类似于 从数组中找是否存在某个数一样,一般的算法是分别取得数组中的一个数和待定的数比较,而稍微高级点的办法是用了索引或者hash,直接就找到了,速度更快。

posted @ 2018-09-07 16:40  eatwhat  阅读(750)  评论(0编辑  收藏  举报