Задать вопрос
@Urukhayy

В проверке с «&&» вторая часть не выполнится в случае ложной первой?

В проверке с "&&" вторая часть не выполнится в случае ложной первой?
if(a ==1 && b == 2)
Если а ложно, то b не будет выполняться?
  • Вопрос задан
  • 288 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 5
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Зависит от языка программирования. Например VisualBasic имеет два оператора - And и AndAlso. And всегда вычисляет оба аргумента, AndAlso вычисляет второй аргумент только если первый true.
Ответ написан
@olexandr7
Естественно
Ответ написан
Комментировать
@mamkaololosha
Да. Не видели ни разу конструкцию?
if(Obj != null && Obj.field != null) { }
Ответ написан
Комментировать
@torwig
C++/Qt
Да. В С+ это так называемая "короткая схема". В случае, если результат первой части позволяет однозначно получить результат всего выражения - остальная часть не вычисляется. Такая же ситуация и с оператором ||. Ходят слухи, что если переопределять эти операторы, тогда "короткая схема" работать не будет.
Ответ написан
Комментировать
@Power
Вот общее описание принципа и как это работает в разных языках: Short-circuit evaluation.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы