switch-case 与 if-else
转载- 条件较多或满足条件概率高的语句靠前,if-else 比 switch 效率高。
- 条件较多或满足条件概率高的语句靠后,switch 比 if-else 效率高。
- 条件较少的情况下,编译器不会做任何优化(不优化比优化好),switch 底层汇编会出现 "cmp" 比较,效率和 if-else 相同。
- 条件较多的情况下,switch 会有算法寻址,效率比 if-else 高。
- 顺序完整的情况下,如果乱序, switch 底层优化没有任何影响。
- 顺序残缺的情况下,如果跨度不大, switch 底层优化会将所有残缺的 case 地址在内存中保存为 default 的地址。
- 顺序残缺的情况下,如果跨度较大, switch 底层优化会用一块内存以一个字节为单位来存放case 1 ~ case N。
- 顺序残缺的情况下,如果跨度很大, switch 底层就开始和 if-else 一样进行 'cmp' 比较,没必要空间换时间了。
- if-else 可以进行区间比较,switch 只能进行单个整数等值比较。
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
上一篇:实验1:SDN拓扑实践
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
DataVeryLite和Nhibernate性能对比
电脑型号:acer 4752g电脑配置:class Program { static void Main(string[] args) { Debug.Listeners.Add(ne
sql ado.net nhibernate dataverylite