如果第一个为真,则逻辑或忽略第二个语句

时间:2014-05-09 10:12:44

标签: java eclipse logical-or

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

1 个答案:

答案 0 :(得分:13)

不,不会。

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

...类似地

  • 使用布尔运算符&&,如果第一项为false,则不会评估第二项
  • 使用按位运算符&,对两个术语进行评估

Java运营商docs here