Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Для новичков > Выполнение условного оператора |
Автор: polin11 26.2.2019, 19:44 |
Выполнение условного оператора Подскажите знающие люди новичку в С++ есть условный оператор: 1) if( condition1 && condition2 ) будет ли проверено условие condition2, если первое условие condition1 ложно? 2) Соответственно if( condition1 || condition2 ) будет ли проверено условие condition2, если первое условие condition1 верно? Желательно ссылкой на документацию или какую-нибудь умную книгу или статью |
Автор: kapbepucm 27.2.2019, 14:30 | ||
Предположу, что зависит от оптимизаций компилятора. Например, мой g++ в первом случае не проверяет condition2, чтобы проверял, нужны извращения ![]()
|
Автор: LeonidPr 27.2.2019, 15:31 |
Думаю можно начать с этого https://en.wikipedia.org/wiki/Short-circuit_evaluation А вот тут прям обсуждение того, что вы спрашиваете со ссылками на стандарты https://stackoverflow.com/questions/628526/is-short-circuiting-logical-operators-mandated-and-evaluation-order |
Автор: xvr 27.2.2019, 15:35 | ||||
Не зависит. && и || работают по схеме shortcut - если результат после первой проверки известен, то вторая не выполняется. С99 http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf Глава 6.5.13 п4:
Следующая глава, п4
Плюсы найдите сами |