"if"语句的影响(表现明智)是什么?

use*_*643 1 performance programming-languages

我的好友说,为了效率,他试图用尽可能少的if/else语句进行编程.当我问他为什么说如果/其他人占用该计划资源的一个重要部分时,他就试图远离他们.

他是对的吗?有没有更好的方法来执行if/else样式代码而不实际使用该结构?开关/箱体结构是否更好?

编辑:他不是指一种特定的语言,而是更多的一般做法.以及UNIX/Linux和Windows平台.

Rob*_*sch 6

通常,编译器将if/then/else构造表示为测试,然后跳转到代码中的另一个位置.对于任何处理器而言,这都是非常标准且经过优化的操作.除非您使用标准编译或解释语言以外的其他方式编程,否则您的好友的结论存在严重缺陷.

此外,优化此级别的代码而不首先对其进行分析(找到慢位的位置)是不明智的.(更像是完全浪费程序员的时间.)


τεκ*_*τεκ 5

switch/case 语句与所有现代优化编译器的 if 语句具有相同的速度。

您的好友正在编写意大利面条式代码。

  • 我想补充一点,您可以通过将最有可能产生错误结果的条件放在序列中的其他条件之前来提高代码效率。由于它们是按照它们在代码中的顺序进行评估的,因此可以提高速度。 (3认同)