【发布时间】:2012-12-14 21:25:53
【问题描述】:
如果我有这个代码:
if (isFoo() && isBar())
{
...
}
程序会先计算第一个条件,再计算第二个条件,然后判断是通过还是跳过下面的块。
但是,如果我像这样嵌套条件:
if (isFoo())
if(isBar())
{
...
}
现在它检查第一个条件,如果它是假的,它不会打扰第二个条件。
如果第二个条件(作为一个函数)是一个耗时耗内存的猪,那么嵌套它似乎更好。
这是真的吗?我以前从未见过这样的代码,我在第一个示例之后做了一个假设,但 IMO 很有可能。
【问题讨论】:
-
这当然不是“与语言无关的”,但大多数语言都会短路布尔值,并且这两个结构是相同的。
-
@WilliamPursell 感谢您的评论,我已经重新标记了这个问题(希望现在没有问题了)。
标签: performance optimization if-statement conditional-statements short-circuiting