Форум программистов, компьютерный форум CyberForum.ru

Логическое условие И и ИЛИ цикла do while - C++

Восстановить пароль Регистрация
 
Ofelion
6 / 6 / 1
Регистрация: 26.01.2015
Сообщений: 96
02.03.2016, 09:58     Логическое условие И и ИЛИ цикла do while #1
Товарищи, доброго дня!
Я что-то не понимаю, почему при вот таком коде, нажимая на 0 или 1 не выйти из программы:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
    int a;
    do
    {
        cin>>a;
    }while(a!=0 || a!=1);
    
    
system("pause");
return 0;    
}
А вот при таком выйти:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
    int a;
    do
    {
        cin>>a;
    }while(a!=0 && a!=1);
    
    
system("pause");
return 0;    
}
Ведь если в первом случае ввести 0 - это не удовлетворит первому условию, но выхода из программы не происходит. НЕ пойму почему.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Игорь1986
34 / 98 / 24
Регистрация: 08.09.2014
Сообщений: 844
Завершенные тесты: 1
02.03.2016, 10:06     Логическое условие И и ИЛИ цикла do while #2
цикл do while один проход цикла будет выполнен независимо от условия, а уже потом смотрится условие на 2 витке
Ofelion
6 / 6 / 1
Регистрация: 26.01.2015
Сообщений: 96
02.03.2016, 10:09  [ТС]     Логическое условие И и ИЛИ цикла do while #3
Так я хоть десять раз нажму 0 или 1 - всё равно не выходит.
8-BITOV
513 / 455 / 83
Регистрация: 05.05.2014
Сообщений: 1,077
02.03.2016, 10:14     Логическое условие И и ИЛИ цикла do while #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ofelion, что такое ИЛИ - знаешь?
Попробую объяснить.
Если a == 0, то оно != 1. Условие (a!=0 || a!=1) ВЫПОЛНЯЕТСЯ.
Анализ ситуации a==1 проведи сам.
vndtta
66 / 43 / 5
Регистрация: 17.10.2011
Сообщений: 146
Завершенные тесты: 1
02.03.2016, 10:18     Логическое условие И и ИЛИ цикла do while #5
1) если нажимаешь 0, то не выполняется условие a!=0, если нажимаешь 1, то не выполняется условие a!=1, ну, и цикл продолжается. все верно, как и планировалось.
2) если нажимаешь 0, то выполняется условие a!=1, если нажимаешь 1, то выполняется условие a!=0, ну, и цикл завершается. все верно, как и планировалось.
Игорь1986
34 / 98 / 24
Регистрация: 08.09.2014
Сообщений: 844
Завершенные тесты: 1
02.03.2016, 10:19     Логическое условие И и ИЛИ цикла do while #6
и это тоже, нам такое в курсе дискретки читали
Mr.X
Эксперт С++
 Аватар для Mr.X
2804 / 1580 / 247
Регистрация: 03.05.2010
Сообщений: 3,674
02.03.2016, 11:34     Логическое условие И и ИЛИ цикла do while #7
Цитата Сообщение от Ofelion Посмотреть сообщение
C++
1
while(a!=0 || a!=1);
Условие выхода - это отрицание условия продолжения, и здесь оно имеет вид: a==0 && a==1, т.е. для выхода их цикла a должно быть одновременно равно и 0 и 1. Как только вам удастся ввести такое значение, так будет выход из цикла. Удачи!
Ofelion
6 / 6 / 1
Регистрация: 26.01.2015
Сообщений: 96
02.03.2016, 12:01  [ТС]     Логическое условие И и ИЛИ цикла do while #8
Цитата Сообщение от 8-BITOV Посмотреть сообщение
Ofelion, что такое ИЛИ - знаешь?
Попробую объяснить.
Если a == 0, то оно != 1. Условие (a!=0 || a!=1) ВЫПОЛНЯЕТСЯ.
Анализ ситуации a==1 проведи сам.
Кажется, теперь понял. Логика такая:
ИЛИ: должно удовлетворяться условие 2-х выражений
И: должно удовлетворяться хотя бы одно условие

Я прав?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2016, 13:14     Логическое условие И и ИЛИ цикла do while
Еще ссылки по теме:

C++ Не работает условие цикла
C++ Логическое ИЛИ в условии цикла while
C++ Объяснить условие цикла while

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

Или воспользуйтесь поиском по форуму:
8-BITOV
513 / 455 / 83
Регистрация: 05.05.2014
Сообщений: 1,077
02.03.2016, 13:14     Логическое условие И и ИЛИ цикла do while #9
Цитата Сообщение от Ofelion Посмотреть сообщение
Я прав?
С точностью до наоборот
Yandex
Объявления
02.03.2016, 13:14     Логическое условие И и ИЛИ цикла do while
Ответ Создать тему
Опции темы

Текущее время: 12:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru