【发布时间】:2015-11-14 09:03:20
【问题描述】:
假设我有boolean show 和困难的方法public boolean isArraySorted( )。
我想知道 if 语句是如何工作的,以及检查顺序是否意味着什么。基本上我想要的是if( !show && isArraySorted( ) ) 比if( isArraySorted( ) && !show ) 快。
据我所知,语句会一个接一个地检查,直到一个失败,对?所以请记住这一点if( !show && isArraySorted( ) ) 应该更快(至少稍微)。如果我错了,请纠正我。
【问题讨论】:
-
&&发生逻辑运算符短路。是的,顺序很重要。因此,您还会看到数千个示例,例如if (objVariable != null && objVariable.doSomething() ). -
你在写作中使用的粗体越多,阅读起来就越困难,只是 FWIW。
-
提示网络时间:为什么不实现两个方法,将它们记录到控制台并返回一个布尔值。然后称它们为这种表达式的两种组合,看看记录了什么。提示:使用调试器并单步执行这些方法,不要费力编写控制台语句。此外:您的问题不仅限于
if陈述,同样适用于bool result = a || b;。最后:对于 or 语句,如果左侧为真,则无需计算右侧。
标签: java performance if-statement