Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
2 / 2 / 0
Регистрация: 10.11.2018
Сообщений: 25

Условия и логика

17.12.2018, 21:48. Показов 1828. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Подскажите , почему на выводе 1 ? Желательно поподробнее! Заранее благодарен .
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include
 
int main(int argc, char** argv)
{
   int x = 0;
   int y = 0;
 
   if (x++ && y++)
   {
     y += 2;
   }
 
   std::cout << x + y << std::endl;
 
return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.12.2018, 21:48
Ответы с готовыми решениями:

логика условия
Если согласно условию переменная $result -- if (!$result)--то есть если пуст.То как тогда может быть выведен запрос--echo $query; ? ...

Логика маткада при работе оператора условия if.
Написал программу для решения задачи с матрицами. В блоке программирования, состоящим из нескольких подблоков программирования, использовал...

Логика условия, может можно лучше сделать
Вот часть кода: $saOutItems = array (); $aStatusGood = array (); for ($x = 0; $x &lt; $sTotalItemsByQuery; $x++) { if...

7
 Аватар для alkl
119 / 94 / 35
Регистрация: 18.12.2012
Сообщений: 654
17.12.2018, 21:58
А что Вы там (на выводе) ожидали ? И почему ?
1
2 / 2 / 0
Регистрация: 10.11.2018
Сообщений: 25
17.12.2018, 22:05  [ТС]
Хорошо спрошу по другому, почему х увеличивается на 1 , а у не увеличивается? ( Вообще я ожидал увидеть 2)
0
 Аватар для alkl
119 / 94 / 35
Регистрация: 18.12.2012
Сообщений: 654
17.12.2018, 22:06
Потому, что срабатывает первое (левое) выражение условия. Дальнейшие выражения проверять нет смысла, по этому до y++ программа просто не доходит.
1
2 / 2 / 0
Регистрация: 10.11.2018
Сообщений: 25
17.12.2018, 22:09  [ТС]
Но логическое И требует выполнения обоих выражений ? Или нет? И тогда если условие истинно , почему у+=2 не срабатывает?
0
 Аватар для alkl
119 / 94 / 35
Регистрация: 18.12.2012
Сообщений: 654
17.12.2018, 22:29
Лучший ответ Сообщение было отмечено Shprexan как решение

Решение

А, стоп... Вы меня запутали...

Добавлено через 3 минуты
Условие НЕ сработает вообще. Первое выражение (x++) = false. Но, x постинкрементируется. По этому, после условия, он = 1.
До y++ программа не дойдёт.

Добавлено через 2 минуты
1. Проверяем x на не_ноль. Получаем ложь.
2. Инкремент x.
3. Первое выражение = ложь, значит пропускаем второе.
В итоге : x=1, y=0.

Добавлено через 2 минуты
Цитата Сообщение от Shprexan Посмотреть сообщение
логическое И требует выполнения обоих выражений ?
Нет. Если одно любое = false, то дальше нет смысла проверять, ибо && уже не сработает.

Добавлено через 7 минут
Кстати, я частенько использую эту особенность. Например, счётчик до n-ного количества :
C++
1
2
3
if(count && !--count){
   // Счётчик досчитал
}
!--count не будет срабатывать, если count будет равен нулю.
1
 Аватар для Avaddon74
571 / 353 / 133
Регистрация: 15.09.2017
Сообщений: 1,239
17.12.2018, 22:31
Лучший ответ Сообщение было отмечено Shprexan как решение

Решение

Объясню проще, выражение:
Цитата Сообщение от Shprexan Посмотреть сообщение
if (x++ && y++)
вернет ложь, т.к. сначала проверит их значения, которые равны 0 и 0 соответственно, а только потом инкрементирует, НО, так первая часть выражения ложь, то дальше проверять нет смысла, т.к. в условии сказано, что оба должны быть true и конструкция y++ уже не срабатывает
1
2 / 2 / 0
Регистрация: 10.11.2018
Сообщений: 25
17.12.2018, 23:03  [ТС]
Голова совсем не работает, забыл отличительную особенность постинкремента, вот и не понимал о чем вы говорите вообще)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.12.2018, 23:03
Помогаю со студенческими работами здесь

Внутри проверки условия не производится ещё одна проверка условия
Как задумывалось - при нажатии на джойстик просто должны были остановится движки, но если при этом нажат джойстик по оси Y в опр...

Описать оператор выбора, в котором при истинности второго условия выполняются действия и третьего условия тоже
помогите пожалуйста ответить на вопрос 2. Описать оператор выбора, в котором при истинности второго условия выполняются действия и...

Массив: Условия ввода: по столбцам, Условия вывода: по строкам в виде таблицы. Написать исходную матрицу и вывод массива по строкам.
Есть массив B размерностью 5x5, тип данных real, Условия ввода: по столбцам, Условия вывода: по строкам в виде таблицы. Написать исходную...

Логика
Всем привет, ребят помогите решить задачки, плиз 1. Если диагонали параллелограмма равны, то параллелограмм является или прямоугольником,...

Логика,(if/else)
ввод двух значений, и вывод суммы их модулей. double a,b,c,d,S; a=StrToFloat(Edit1-&gt;Text); b=StrToFloat(Edit2-&gt;Text); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru