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,直接就找到了,速度更快。