在Java(Eclipse)中,当有if (true || false)
这样的语句时,它最终会成立,但问题是如果第一个是真的,编译器会评估第二个语句吗?
这对我来说很重要,因为如果变量为null或者它有一定的值,我需要做一个操作。
我的陈述看起来像if (array == null || array[i] < array[j])
。
你可以看到我的问题的原因,因为如果数组设置为null,那么第二个语句将产生错误。
那么,array == null
的真值是否足够或者编译器是否也会评估array[i] < array[j])
?
答案 0 :(得分:13)
不,不会。
||
,如果第一项为true
,则第二项不会
被评估。|
评估两个术语...类似地
&&
,如果第一项为false
,则不会评估第二项&
,对两个术语进行评估Java运营商docs here。