switch总结:
2021-09-21 本文已影响0人
冰雨9527
1、假设switch语句的分支比较少的时候(例如3,少于4的时候没有意义)没有必要使用此结构,相当于if。
2、各个分支常量的差值较大的时候,编译器会在效率还是内存进行取舍,这个时候编译器还是会编译成类似于if,else的结构。
3、在分支比较多的时候:在编译的时候会生成一个表(跳转表每个地址四个字节)。
小结:
在使用 switch语句 和 if...else语句执行效率高低的问题,是可以通过汇编代码得出结论:
当 switch 分支和 if...else的条件判断小于4的时候,执行效率是一样的;
当 switch 分支和 if...else的条件判断大于等于4的时候,switch 执行效率更高。
3.4 switch总结
1、假设switch语句的分支比较少的时候(例如3,少于4的时候没有意义)没有必要使用此结构,相当于if。
2、各个分支常量的差值较大的时候,编译器会在效率还是内存进行取舍,这个时候编译器还是会编译成类似于if,else的结构。
3、在分支比较多的时候:在编译的时候会生成一个表(跳转表每个地址四个字节)
当case的值,不规律的时候,他的汇编代码又会回归到 if - else if -else ..的汇编指令【这里我就不再过多的分析汇编解释】
所以我们写case 必须是规律的且分支大于三的时候,最能保证我们代码的执行效率