从优化代码运行时的角度来看,是否存在使用“嵌套if”语句以及何时使用“switch case”语句的缩略图规则?
答案 0 :(得分:4)
我怀疑你会找到一个真实的应用程序,其中嵌套的if和switch的区别甚至值得测量。磁盘访问,Web访问等需要花费许多数量级的时间。
选择最容易阅读和调试的内容。
另请参阅What is the difference between IF-ELSE and SWITCH?(可能重复)以及Advantage of switch over if-else statement。有趣的是,交换机的支持者写道
在最坏的情况下编译器会 生成与if-else相同的代码 链,所以你不会失去任何东西。如果 怀疑是最常见的情况 首先进入switch语句。
在最好的情况下,优化器可以 找到一种更好的方法来生成 码。编译器所做的常见事情是 构建二元decission树 (保存比较和跳跃 平均情况)或只是建立一个 跳转表(无需比较 全部)。
答案 1 :(得分:0)
如果您有超过2-3个比较 然后“切换” 否则“如果”
尝试应用一些模式,然后再转换为策略......
答案 2 :(得分:0)
我认为对于可以使用任何一种方法实施的决策结构都没有任何区别。您的编译器很可能会在可执行文件中生成相同的指令。