Показать сообщение отдельно
Старый 01.07.2009, 16:35   #566
Рыцарь
 
Аватар для mks
 
Регистрация: 21.09.2007
Сообщений: 376
Сказал Спасибо: 11
Имеет 218 спасибок в 106 сообщенях
mks пока неопределено
По умолчанию

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

Существуют два интересных дополнения к набору логических операторов. Это — альтернативные версии операторов AND и OR, служащие для быстрой оценки логических выражений. Вы знаете, что если первый операнд оператора OR имеет значение true, то независимо от значения второго операнда результатом операции будет величина true. Аналогично в случае оператора AND, если первый операнд — false, то значение второго операнда на результат не влияет — он всегда будет равен false. Если вы в используете операторы && и || вместо обычных форм & и |, то Java не производит оценку правого операнда логического выражения, если ответ ясен из значения левого операнда. Общепринятой практикой является использование операторов && и || практически во всех случаях оценки булевых логических выражений. Версии этих операторов & и | применяются только в битовой арифметике.
mks вне форума   Ответить с цитированием
За это сообщение mks нажился спасибкой от: