Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Ofelion
13 / 13 / 7
Регистрация: 26.01.2015
Сообщений: 203
#1

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

02.03.2016, 09:58. Просмотров 476. Ответов 8
Метки нет (Все метки)

Товарищи, доброго дня!
Я что-то не понимаю, почему при вот таком коде, нажимая на 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 - это не удовлетворит первому условию, но выхода из программы не происходит. НЕ пойму почему.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2016, 09:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Логическое условие И и ИЛИ цикла do while (C++):

Логическое ИЛИ в условии цикла while - C++
Доброго времени суток. Комрады, ситуация следующая, цикл должен завершатся после введения одного из каких-либо 2-х (или более) символов....

Написать логическое условие, проверяющее, что оба числа А и В четные - C++
Написать логическое условие, проверяющее, что оба числа А и В четные

написать логическое выражение , представляющее условие (знаки операций отделять от операндов пробелами): - C++
вопрос: На языке C++ написать логическое выражение , представляющее условие (знаки операций отделять от операндов пробелами): x...

Условие цикла while - C++
Не как не соображу как сделать переменную int sh; и потом при диалоге с пользователем проверить что он ввел именно инт а не чар потому...

Объяснить условие цикла while - C++
&lt;#include &lt;fstream&gt; using namespace std; #define FILENAME_1 &quot;file_1.txt&quot; #define FILENAME_2 &quot;file_2.txt&quot; int main() { ...

Условие прерывания цикла - C++
Из-за чего происходит(условие прерывания) выход из цикла? Мои предположения что пока b не равно 0, то цикл выполняется, как только...

8
Игорь1986
49 / 113 / 29
Регистрация: 08.09.2014
Сообщений: 999
Завершенные тесты: 1
02.03.2016, 10:06 #2
цикл do while один проход цикла будет выполнен независимо от условия, а уже потом смотрится условие на 2 витке
1
Ofelion
13 / 13 / 7
Регистрация: 26.01.2015
Сообщений: 203
02.03.2016, 10:09  [ТС] #3
Так я хоть десять раз нажму 0 или 1 - всё равно не выходит.
0
8-BITOV
541 / 484 / 87
Регистрация: 05.05.2014
Сообщений: 1,107
02.03.2016, 10:14 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ofelion, что такое ИЛИ - знаешь?
Попробую объяснить.
Если a == 0, то оно != 1. Условие (a!=0 || a!=1) ВЫПОЛНЯЕТСЯ.
Анализ ситуации a==1 проведи сам.
1
vndtta
90 / 67 / 13
Регистрация: 17.10.2011
Сообщений: 235
Завершенные тесты: 1
02.03.2016, 10:18 #5
1) если нажимаешь 0, то не выполняется условие a!=0, если нажимаешь 1, то не выполняется условие a!=1, ну, и цикл продолжается. все верно, как и планировалось.
2) если нажимаешь 0, то выполняется условие a!=1, если нажимаешь 1, то выполняется условие a!=0, ну, и цикл завершается. все верно, как и планировалось.
1
Игорь1986
49 / 113 / 29
Регистрация: 08.09.2014
Сообщений: 999
Завершенные тесты: 1
02.03.2016, 10:19 #6
и это тоже, нам такое в курсе дискретки читали
1
Mr.X
Эксперт С++
3051 / 1696 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
02.03.2016, 11:34 #7
Цитата Сообщение от Ofelion Посмотреть сообщение
C++
1
while(a!=0 || a!=1);
Условие выхода - это отрицание условия продолжения, и здесь оно имеет вид: a==0 && a==1, т.е. для выхода их цикла a должно быть одновременно равно и 0 и 1. Как только вам удастся ввести такое значение, так будет выход из цикла. Удачи!
1
Ofelion
13 / 13 / 7
Регистрация: 26.01.2015
Сообщений: 203
02.03.2016, 12:01  [ТС] #8
Цитата Сообщение от 8-BITOV Посмотреть сообщение
Ofelion, что такое ИЛИ - знаешь?
Попробую объяснить.
Если a == 0, то оно != 1. Условие (a!=0 || a!=1) ВЫПОЛНЯЕТСЯ.
Анализ ситуации a==1 проведи сам.
Кажется, теперь понял. Логика такая:
ИЛИ: должно удовлетворяться условие 2-х выражений
И: должно удовлетворяться хотя бы одно условие

Я прав?
0
8-BITOV
541 / 484 / 87
Регистрация: 05.05.2014
Сообщений: 1,107
02.03.2016, 13:14 #9
Цитата Сообщение от Ofelion Посмотреть сообщение
Я прав?
С точностью до наоборот
0
02.03.2016, 13:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2016, 13:14
Привет! Вот еще темы с ответами:

Условие для цикла С++ - C++
Доброго всем времени суток! Помогите пожалуйста человеку который только начал открывать для себя С++ Задача следующая: необходимо...

Условие выполнения цикла - C++
#include &lt;iostream.h&gt; void main() { char a; int r=1; cin&gt;&gt;a; if(a==r) { cout&lt;&lt;&quot;test&quot;&lt;&lt;endl; ...

Не работает условие цикла - C++
Здравствуйте! Есть программа: #include &lt;iostream&gt; using namespace std; main () { setlocale (0,&quot;&quot;); float a, b, d; ...

Условие для прекращения цикла - C++
Имеется задача: Ввести двоичный код и перевести его в десятичный. Имеется подсказка для решения задачи: использовать деление и деление с...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru