在 Java (Eclipse) 中,当有诸如 之类的语句时if (true || false)
,它最终会为真,但问题是如果第一个语句为真,编译器会评估第二个语句吗?这对我来说很重要,因为如果变量为 null 或者它具有某个值,我需要执行一个操作。我的陈述看起来像if (array == null || array[i] < array[j])
。您可以看到我的问题的原因,因为如果数组设置为 null 那么第二个语句将产生错误。那么,从 truearray == null
就足够了,还是编译器array[i] < array[j])
也会评估?
问问题
13826 次
1 回答
27
不,不会的。
- 使用 boolean operator
||
,如果第一项是true
第二项,则不会被评估。 - 使用按位运算符
|
计算两个术语
相似地...
- 使用布尔运算符
&&
,如果第一项是false
第二项,则不会被评估 - 使用按位运算符
&
,对这两个项进行求值
Java 操作员文档在这里。
于 2014-05-09T10:13:57.933 回答