Логично или игнорирует второе утверждение, если first верно
В Java (Eclipse), когда есть такое утверждение, как if (true || false)
, в конечном итоге это правда, но вопрос в том, будет ли компилятор оценивать второе утверждение, если первое верно? Это важно для меня, потому что у меня есть операция, которую мне нужно сделать, если переменная равна нулю ИЛИ имеет определенное значение. Мое утверждение выглядит так if (array == null || array[i] < array[j])
, Вы можете увидеть причину моего вопроса, потому что если для массива задано значение null, то второе выражение выдаст ошибку. Итак, правда от array == null
достаточно или будет компилятор оценивать array[i] < array[j])
также?
1 ответ
Решение
Нет, не будет.
- С логическим оператором
||
если первый членtrue
Второй срок не будет оцениваться. - С побитовым оператором
|
оба условия оцениваются
Так же...
- С логическим оператором
&&
если первый членfalse
второй срок не будет оцениваться - С побитовым оператором
&
оба условия оцениваются
Документы по Java-операторам здесь.