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

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

Войти
Регистрация
Восстановить пароль
 
half-node
21 / 18 / 3
Регистрация: 12.08.2010
Сообщений: 206
#1

Цикл do...while(); - C++

21.01.2011, 17:35. Просмотров 467. Ответов 4
Метки нет (Все метки)

Привет!
Объясните, пожалуйста, почему не завершается цикл при следующем написании?:
C++
1
2
3
4
5
6
7
8
9
10
        do
        {
            cout << "Введите тип диска (c/d): "; cin >> ch;
            if (ch == 'c')
                disk_type = CD;
            else if(ch=='d')
                disk_type = DVD;
            else
                cout << "Указан неверный тип диска, попробуйте еще раз!\n";
        } while((ch != 'c') || (ch != 'd'));
А вот если заменить условие на:
C++
1
while( !(ch == 'c' || ch == 'd'));
То все будет работать правильно! Как так? Ведь, как мне кажется, смысл этих условий одинаковый - выйти из цикла, как только переменная ch будет равна 'c' или 'd'
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2011, 17:35     Цикл do...while();
Посмотрите здесь:

Создать программу по всем 3 видам циклов...цикл с параметром,цикл с условием,цикл,и цикл с предусловием... - Turbo Pascal
Найти сумму чисел 1 в квадрате до 10 c квадрате...операцию возведению в степень не использовать учесть особенности получения квадратного...

Как реализовать бесконечный цикл While, но чтобы этот цикл не грузил процессор? - Visual C++
Допустим есть цикл: while (1) { ... } Как сделать так, чтобы бесконечный цикл не грузил процессор. Избавиться от...

Написать в турбо паскале, Цикл с параметром, Цикл, с постусловием, и с предусловием пожалуйста - Turbo Pascal

.NET 3.x Почему если условие входа в цикл не выполняется, функция заново входит в цикл - C#
Сам код: private void traverse_node(TreeControlItem node) { TreeControlItem childNode = default(TreeControlItem);...

Цикл: Как грамотно организовать цикл с получением количества верных и неверных ответов? - VBA
Доброго времени суток, товарищи. Вот есть у меня два рандомно генерируемых числа, проверка произведения которых проверяется вводом ответа...

Как переделать программу, чтобы внешний цикл был repeat.until, а цикл for вложенным? Паскаль - Pascal ABC
const x = 0.29; var y, sv, sz, fact, st: real; i, j, zn: integer; begin sz := 0; writeln('cycles for and while');

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lagobas
3 / 3 / 0
Регистрация: 22.12.2010
Сообщений: 33
21.01.2011, 17:42     Цикл do...while(); #2
если допустим ты ввел диск с, то
C
1
(ch != 'd')
у тебя будет верно))Так что верно только
C
1
while( !(ch == 'c' || ch == 'd'));
half-node
21 / 18 / 3
Регистрация: 12.08.2010
Сообщений: 206
21.01.2011, 17:46  [ТС]     Цикл do...while(); #3
О. Я прозрел! Спасибо!
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
21.01.2011, 17:48     Цикл do...while(); #4
Надо так
C++
1
while(ch != 'c' && ch != 'd');
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2011, 17:56     Цикл do...while();
Еще ссылки по теме:

Нормально ли для системы один и тот же цикл запускать цикл 20 раз в секунду с итерацией до 1000 - Delphi
Нормально ли для системы один и тот же цикл запускать цикл 20 раз в секунду с итерацией до 1000? Или это большая перегрузка для...

Цикл: цикл for вообще никак не воспринимается транслятором - C++
Пишу программу, которая производит различные действия с одномерным массивом. Возникла следующая проблема: цикл for вообще никак не...

Почему цикл на при 1 уходит в бесконечный цикл? - C++
#define _CRT_SECURE_NO_WARNINGS #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; int main() { int x=0, y=0,...

Итерационный цикл и цикл с известным числом повторения - Pascal
5.12-интерационный цикл 4.9-цикл с известным числом повторений


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

Или воспользуйтесь поиском по форуму:
half-node
21 / 18 / 3
Регистрация: 12.08.2010
Сообщений: 206
21.01.2011, 17:56  [ТС]     Цикл do...while(); #5
Да, я понял. Просто при моем первом варианте, одно из под-условий всегда будет не исполняться. Спасибо.
Yandex
Объявления
21.01.2011, 17:56     Цикл do...while();
Ответ Создать тему
Опции темы

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