嵌套if或switch case语句

时间:2011-06-02 07:32:38

标签: c case nested-if

从优化代码运行时的角度来看,是否存在使用“嵌套if”语句以及何时使用“switch case”语句的缩略图规则?

3 个答案:

答案 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)

我认为对于可以使用任何一种方法实施的决策结构都没有任何区别。您的编译器很可能会在可执行文件中生成相同的指令。