10

在 Java (Eclipse) 中,当有诸如 之类的语句时if (true || false),它最终会为真,但问题是如果第一个语句为真,编译器会评估第二个语句吗?这对我来说很重要,因为如果变量为 null 或者它具有某个值,我需要执行一个操作。我的陈述看起来像if (array == null || array[i] < array[j])。您可以看到我的问题的原因,因为如果数组设置为 null 那么第二个语句将产生错误。那么,从 truearray == null就足够了,还是编译器array[i] < array[j])也会评估?

4

1 回答 1

27

不,不会的。

  • 使用 boolean operator ||,如果第一项是true第二项,则不会被评估。
  • 使用按位运算符|计算两个术语

相似地...

  • 使用布尔运算符&&,如果第一项是false第二项,则不会被评估
  • 使用按位运算符&,对这两个项进行求值

Java 操作员文档在这里

于 2014-05-09T10:13:57.933 回答