【发布时间】:2015-09-19 07:37:54
【问题描述】:
这有什么区别:
if(a && b)
{
//code
}
还有这个:
if(a)
{
if(b)
{
//code
}
}
据我所知,b 只有在 a 为真时才会在第一个代码块中进行评估,而第二个代码块也是一样的。
使用其中一个有什么好处吗?代码执行时间?记忆?等等
【问题讨论】:
-
为什么要关心执行时间或内存?这太疯狂了。这是一个明显的例子,其中一个可能比另一个更清晰、更容易理解。你为什么还要考虑微优化?!在没有证明需要的情况下,唯一应该执行的优化是算法优化。
-
@DavidSchwartz 好吧,您必须选择一个,如果出于某种原因,最好选择一个,即使它只是代码可读性,不一定是执行时间。
-
没错。所以忘记代码执行时间或内存。应该选择哪个更清楚地表达程序员的意图。
-
先发制人的微优化从来都不是一个好主意。微优化在 95% 的情况下什么都不做。如果你要进行微优化,首先确定你有一个瓶颈,然后分析你的代码,然后进行调整、测量并确保它们是有效的。在编写代码时,可读性等是关键。
-
@AnubianNoob 在什么情况下哪个更易读?
标签: java if-statement optimization short-circuiting