结论:switch...case的效率会比if...else要高一些
一、 if...else语句
对if...else函数反汇编后,能看见这个函数所采用的方法是按顺序去比较(jne表示“当不等于时转移”),如果输入的数值所对应的if条件靠后的话,会进行较多次的对比判断后,才能进入对应的分支。
二、 switch...case语句
由上图可以看出,当开始进行switch匹配时,在
就已经计算出需要跳转到哪里进行下一步运算了,当switch的值变化的时候,这里需要跳转的地址也会进行变化。对比if...else来看,switch...case不需要多次比较,而是直接跳转到对应的运算条件,所以,它的效率会比if...else要高一些。