switch case与if/else的效率差在哪里!

       在学校的时候经常写一些小的程序,遇到分支问题不假思索的选择使用if/else,只记得还有个switch case也能用但是很少选择它。然而真理往往是掌握在少数人手中的,如果分支数量较少选择switch case跟if/else的效率没有区别。当分支数量超过3个时switch case的效率就要明显高于is/else了。血和泪的经验真的是在实践中一点一点碰出来的!

        if/else就是从第一个分支开始判断,并且会执行完分支的判断条件直到条件为真才执行分支内容再返回。而switch case的判断方法是首先它的判断条件是一个integral or enum type即一个整形或者枚举类型,从判断条件来看判断一个整形的速度要比判断一个if分支为真的速度快很多。最核心的是switch case的底层实现,在实现上switch case会用一个跳转表来存储分支的地址,因为判断条件就是整形的,这个整形作为跳转表的下标就得到了分支的位置直接进入case。

        尽量使用switch case吧!!!会让你代码的执行效率提高很多!

你可能感兴趣的:(pointer)