假设我有一个 IF
条件:
if (A || B)
∧
|
|
left
{
// do something
}
现在假设 A
比 B
更有可能收到真值,为什么我要关心左边是哪一个?
如果我将它们都放在 IF
括号中,那么我知道(作为代码的程序员)双方都需要。
问题是,我的教授在他的讲义上写道,我应该把“更有可能获得真值的变量”放在左边。
有人可以解释一下好处吗?好吧,我把它放在左边...我得到了什么?运行 ?
最佳答案
不仅仅是选择左边最有可能的条件。你也可以在左边有一个安全 guard ,这意味着你只能有一个订单。考虑
if (s == null || s.length() == 0) // if the String is null or empty.
您不能在此处调换顺序,因为第一个条件可以防止第二个条件抛出 NPE。
同样你可以拥有
if (s != null && s.length() > 0) // if the String is not empty
为 ||
选择最可能为真或为 &&
选择最有可能为假的原因是微优化,以避免在第二个表达式中计算的成本.这是否转化为可衡量的性能差异是值得商榷的。
关于java - 为什么 if 语句中的表达式顺序很重要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12119240/