首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IF语句和代码效率

问IF语句和代码效率
EN

Stack Overflow用户
提问于 2011-10-22 20:54:45
回答 3查看 200关注 0票数 1

这与任何问题没有什么特别的关系,只是我thinking.Does,代码中大量IF语句的存在意味着糟糕的代码设计和效率降低。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-22 21:17:16

从理论上讲,大量的'if‘语句不会显著降低代码效率。代码只是确定表达式的布尔值,并决定是否继续。然而,如果在迭代循环中有许多' If‘语句,就效率而言,这可能会导致更大的问题。

糟糕的设计是另一个问题,我不会再提了(齐明吉比我更好地介绍了这个问题)。

票数 0
EN

Stack Overflow用户

发布于 2011-10-22 21:29:48

如果你真的想优化代码,请注意这一点:

代码语言:javascript
复制
if (complexCalculation(someVariable) > 10)
{
}
else if (complexCalculation(someVariable) > 5)
{
}

关键是,如果您正在尝试优化某些代码,请尝试将计算结果“缓存”到变量中,而不是多次重复相同的计算

代码语言:javascript
复制
int cached = complexCalculation(someVariable);

if (cached > 10)
{
}
else if (cached > 5)
{
}

为什么是这个?现在..。如果complexCalculation是基于它的参数的确定性的(所以complexCalculation(N) == complexCalculation(N) always,简而言之,你用相同的参数调用它两次,你将得到两次相同的结果always)并且没有副作用(所以它不会修改任何其他东西),那么编译器可以自由地优化它。问题是,编译器经常无法验证一个函数是否是确定性的并且没有副作用,而且很少有语言(主要是函数式语言,如F#、Haskell……)。让它很容易告诉编译器(从技术上讲,在函数语言中,所有的函数都应该是确定性的,没有副作用:-) )。

票数 1
EN

Stack Overflow用户

发布于 2011-10-22 21:03:56

一般来说,大量的"if“语句被认为是糟糕的设计。考虑用多态替换条件语句。这是Martin Fowler在第255页的“重构:改进现有代码的设计”一书中的主题之一。如果你没有这本书,可以看看下面的文章:http://sourcemaking.com/refactoring/replace-conditional-with-polymorphism

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7859671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档