Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверка 2-х условий в if слева направо? 
:(
    Опции темы
BezImeni
Дата 19.10.2006, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 7.5.2006

Репутация: нет
Всего: нет



Код

if (A && B)
.
.
.


понятно, что если А false, то В проверятся не будет. 

А можно ли быть уверенным, что сначала проверится иммено А?  smile 
PM MAIL   Вверх
powerOn
Дата 19.10.2006, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 47
Всего: 159



Цитата(BezImeni @  19.10.2006,  21:48 Найти цитируемый пост)
А можно ли быть уверенным, что сначала проверится иммено А? 

Вообще говоря, нужно быть уверенным. А что, есть подозрения в обратном?


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
mr.DUDA
Дата 19.10.2006, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 1
Всего: 232



Достаточно поставить в качестве B условие, генерирующее исключение, и в отладчике проверить.

СУВ.


--------------------
user posted image
PM MAIL WWW   Вверх
Kangaroo
Дата 20.10.2006, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 21
Всего: 104



Цитата(BezImeni @ 19.10.2006,  20:48)
А можно ли быть уверенным, что сначала проверится иммено А?

Так ты сам себе и ответил: smile
Цитата

понятно, что если А false, то В проверятся не будет. 


Других вариантов быть не может..
Для убедительности.. вот что написано тут
Цитата

Conditional-And Operator && 
...
At run time, the left-hand operand expression is evaluated first...



--------------------
Lost....
PM MAIL MSN   Вверх
batigoal
Дата 20.10.2006, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Можно использовать &, тогда будут проверены обе части.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Nicholas_S
Дата 20.10.2006, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 486
Регистрация: 12.10.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 19



В любом языке программирования (как то Pascal, Delphi, C), а также в скриптах (JS) оператор if рассматривает операнды коньюнктивного выражения либо до конца выражения, либо пока результат не будет отрицательным.


--------------------
...все в мире относительно
PM   Вверх
JUncle
Дата 20.10.2006, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 162
Регистрация: 6.4.2006
Где: Казань, РФ

Репутация: нет
Всего: 1



Nicholas_S, Java не любой язык  smile Это Java..


Цитата(batigoal @  20.10.2006,  08:30 Найти цитируемый пост)
Можно использовать &, тогда будут проверены обе части.

А операции && и || - сокращенные логические операции.
Если результат уже очевиден, то правая (ые) части рассматриваться не будут.
Так написано в спецификации, так было, так есть и так будет. Аминь.

Это сообщение отредактировал(а) JUncle - 20.10.2006, 17:38
--------------------
class JUncle extends Man // singleton{/*...*/}
PM MAIL   Вверх
BezImeni
Дата 3.11.2006, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 7.5.2006

Репутация: нет
Всего: нет



Цитата

Вообще говоря, нужно быть уверенным. А что, есть подозрения в обратном? 


да, есть - у меня было такое сравнение
Код

if (индекс в массиве && он имеет какой-то атрибут)


на этом месте вылетало. Проверил в Debug и оказалось, что проверялось наличие атрибута у элемента,
который не в массиве. Т.е. исключение выбрасывалось, что индекс за пределами массива.

PM MAIL   Вверх
powerOn
Дата 3.11.2006, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 47
Всего: 159



Цитата(BezImeni @  3.11.2006,  18:50 Найти цитируемый пост)
да, есть - у меня было такое сравнение

Код в студию!  smile 


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
chief39
Дата 6.11.2006, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: 15
Всего: 77



Цитата(BezImeni @  3.11.2006,  18:50 Найти цитируемый пост)
да, есть - у меня было такое сравнение
Выделить всёкод Java
1:
    
if (индекс в массиве && он имеет какой-то атрибут)


на этом месте вылетало. Проверил в Debug и оказалось, что проверялось наличие атрибута у элемента,
который не в массиве. Т.е. исключение выбрасывалось, что индекс за пределами массива.

Ну дык... Если ты пытался получить запись в массиве в первом выражении - то оно вполне могло там вылететь smile
Проверяй чтоб 
  •  индекс < размера массива
  •  элемент по данному индексу != null
  •  тогда уж выбирай.


Это сообщение отредактировал(а) chief39 - 6.11.2006, 11:14


--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0526 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.