Мне просто любопытно, как на самом деле работает Java, когда дело доходит до if
операторов. (Примечание: когда я говорю «компонент» ниже, я имею в виду отдельные части, проверенные оператором, например a
, b
, c
)
более эффективны с точки зрения вычислений?
if (a && b && c) { do stuff }
или
if (a) {
if (b) {
if (c) {
do stuff }
}
}
Я спрашиваю, потому что важно, что Java делает в первой версии. Проверяет ли он все элементы в операторе или a
, и если он ложный
, то отменяет проверку остальной части оператора?
Если это так, то он имеет смысл поставить компонент с наибольшей вероятностью отказа в качестве первого компонента в операторе.
Если весь оператор проверяется каждый раз, имеет смысл разделить компоненты на несколько разных операторов, как во втором примере.