嵌套if或switch case语句

从优化代码运行时的角度来看,是否有一个拇指规则,用于何处使用“嵌套if”语句以及何时使用“switch case”语句?

我怀疑你会找到一个真实的应用程序,其中嵌套的if和switch的区别甚至值得测量。 磁盘访问,Web访问等需要花费许多数量级的时间。

选择最容易阅读和调试的内容。

另请参阅IF-ELSE和SWITCH有什么区别? (可能重复)以及切换if-else语句的优点 。 有趣的是,交换机的支持者写道

在最坏的情况下,编译器将生成与if-else链相同的代码,因此您不会丢失任何内容。 如果有疑问,请将最常见的案例放在switch语句中。

在最好的情况下,优化器可能会找到更好的方法来生成代码。 编译器所做的常见事情是构建二进制decission树(在平均情况下保存比较和跳转)或者只是构建一个跳转表(完全没有比较)。

如果您有超过2-3个比较,那么“切换”否则“如果”

尝试在转换策略之前应用一些模式……

我不相信它会对可以使用任何一种方法实现的决策结构产生任何影响。 您的编译器很可能会在可执行文件中生成相同的指令。