Логично или игнорирует второе утверждение, если first верно

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

1 ответ

Решение

Нет, не будет.

  • С логическим оператором ||если первый член true Второй срок не будет оцениваться.
  • С побитовым оператором | оба условия оцениваются

Так же...

  • С логическим оператором &&если первый член false второй срок не будет оцениваться
  • С побитовым оператором &оба условия оцениваются

Документы по Java-операторам здесь.

Другие вопросы по тегам