Цитата:
Сообщение от i-bell
у меня вот ощущение, что первый вариант...
получается ведь, что если хотя бы первое условие - false, то не будут обрабатываться последующие проверки. А в случае and-and-and одновременно проверяются все условия.
Но все таки хотелось бы услышать мнение специалиста
|
Да.., думаю твое ощущение верно, первый вариант будет быстрей, не даром в Java есть так называемые операторы быстрой оценки логических выражений, собственно цитата из учебника по Java:
Цитата:
Операторы быстрой оценки логических выражений (short circuit logical operators)
Существуют два интересных дополнения к набору логических операторов. Это — альтернативные версии операторов AND и OR, служащие для быстрой оценки логических выражений. Вы знаете, что если первый операнд оператора OR имеет значение true, то независимо от значения второго операнда результатом операции будет величина true. Аналогично в случае оператора AND, если первый операнд — false, то значение второго операнда на результат не влияет — он всегда будет равен false. Если вы в используете операторы && и || вместо обычных форм & и |, то Java не производит оценку правого операнда логического выражения, если ответ ясен из значения левого операнда. Общепринятой практикой является использование операторов && и || практически во всех случаях оценки булевых логических выражений. Версии этих операторов & и | применяются только в битовой арифметике.
|