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

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

Войти
Регистрация
Восстановить пароль
 
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
#1

"Нет выхода" из цикла - C++

19.09.2010, 21:01. Просмотров 428. Ответов 7
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
    while (choice != 'y' || choice != 'n')
            {
                cout<<"Copying massive's size is larger than destination massive's size!\n";
                cout<<"Do you want to change the destination massive size ? (y/n)\n-> ";
                //cin.get(); 
                cout<<flush;
                choice = (char)getch();
                //cin>>choice;
                cout<<flush;
                cout<<choice<<"\n";
            }
При вводе 'y' проверяю в Debugе'ре, что choice действительно равен 'y', но цикл продолжает работу.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2010, 21:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос "Нет выхода" из цикла (C++):

После каждого знака препинания (".", ",", ";") вставить в строку пробел, если там его нет - C++
Выполните задания с использованием библиотечного класса string. Даны строка S. Необходимо после каждого знака препинания (&quot;.&quot;, &quot;,&quot;,...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

Дана строка, в котором есть слово "да" или слово "нет". Если в нем есть слово "нет", то удалить его - C++
Дана строка, в котором есть слово &quot;да&quot; или слово &quot;нет&quot;. Если в нем есть слово &quot;нет&quot;, то удалить его или получить строку в слова &quot;да&quot; и...

Составить программу,которая выведет "Да","Нет","на границе" - C++
Вот фотки графика и задание,заранее спасибо

Дана точка на плоскости с координатами (х, у). Составить программу, которая выдает одно из сообщений "Да", "Нет", "На - C++

Ошибка "error C2446: :: нет преобразования "int" в "char *" - C++
Ошибка: &quot;error C2446: :: нет преобразования &quot;int&quot; в &quot;char *&quot; Когда нажимаю двойным кликом на ошибку меня перекидывает в файл...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
besstiaa
94 / 94 / 7
Регистрация: 04.06.2010
Сообщений: 223
19.09.2010, 21:41 #2
C++
1
while (choice != 'y' && choice != 'n')
Такое условие должно быть.
1
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
19.09.2010, 23:13  [ТС] #3
Цитата Сообщение от besstiaa Посмотреть сообщение
C++
1
while (choice != 'y' && choice != 'n')
Такое условие должно быть.
Спасибо, но по логике || тоже должно всё отлично работать
0
fasked
Эксперт С++
4936 / 2516 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
19.09.2010, 23:57 #4
Цитата Сообщение от alexsvk Посмотреть сообщение
Спасибо, но по логике || тоже должно всё отлично работать
это как же? странная у вас логика знаете ли. по вашим рассуждениям, чтобы выйти из цикла переменная должна быть равна двум значениям одновременно
0
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
20.09.2010, 00:03  [ТС] #5
Цитата Сообщение от fasked Посмотреть сообщение
это как же? странная у вас логика знаете ли. по вашим рассуждениям, чтобы выйти из цикла переменная должна быть равна двум значениям одновременно
Не понял Вас совершенно. Оператор "||" - это логическое "или". В моём случае выход будет в 2-х случаях: либо пользователь вводит 'n', либо 'y'.
0
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
20.09.2010, 00:09 #6
Цитата Сообщение от alexsvk Посмотреть сообщение
В моём случае выход будет в 2-х случаях: либо пользователь вводит 'n', либо 'y'.
и в обоих случаях цикл продолжается
0
fasked
Эксперт С++
4936 / 2516 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
20.09.2010, 00:10 #7
почитайте только что состоявшийся
диалог
-
Lavr 20 сентября 2010 г.
while (choice != 'y' && choice != 'n')
Вот это меня кстати тоже всегда удивляло.
Что именно так, ибо
while(choice!='y'||choice!='n')
Первое условие возвращает 0 и второе 0, если не равны. 0||0=0
-
fa 20 сентября 2010 г.
0:00 чо!?
-
Lavr 20 сентября 2010 г.
0:00 э. как чо?

0 0 0
0 1 1
1 0 1
1 1 1
*
fa 20 сентября 2010 г.
0:01 подумай еще раз
*
Lavr 20 сентября 2010 г.
0:02 При и

0 0 0
0 1 0
1 0 0
1 1 1

При или соответственно

0 0 0
0 1 1
1 0 1
1 1 1

При XOR

0 0 0
0 1 1
1 0 1
1 1 0
0:02 оййй
0:03 Первое условие возвращает 1 и второе 1, если не равны. 1||1=1
0:03 Что-то неверно?
*
fa 20 сентября 2010 г.
0:04 while(i != 1 || i != 2) {
printf("> ");
scanf("%d", &i);
}
0:04 ввожу 3
0:04 получается true
0:04 ввожу 5 - true
0:04 ввожу 2 - true
*
Lavr 20 сентября 2010 г.
0:04 ну да.
0:04 а если и
0:04 тогда false если не 2
*
fa 20 сентября 2010 г.
0:04 при 2, true || false = true
*
Lavr 20 сентября 2010 г.
0:05 да
*
fa 20 сентября 2010 г.
0:05 соответственно цикл бесконечеен
0:05 true && false = false
false && true = false
*
Lavr 20 сентября 2010 г.
0:05 Ну да.
0:06 while(i != 1 || i != 2) {

брякнется только если и 1 и 2?
*
fa 20 сентября 2010 г.
0:06 false && false - случай когда переменная равна двум значениям одновременно
*
Lavr 20 сентября 2010 г.
0:06 что невозможно
*
fa 20 сентября 2010 г.
0:06 да да
*
Lavr 20 сентября 2010 г.
0:06 все. извини за тупость)
*
fa 20 сентября 2010 г.
0:06 да ьбывает
0:07 я раньше тоже как то по этому поводу зависал DDD
*
Lavr 20 сентября 2010 г.
0:07 Иди объясняй ему)
на эту тему
1
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
20.09.2010, 08:23  [ТС] #8
Цитата Сообщение от fasked Посмотреть сообщение
почитайте только что состоявшийся на эту тему
Спасибо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.09.2010, 08:23
Привет! Вот еще темы с ответами:

Даны две строки. Если они начинаются с одинаковых символов, то напечатать "ДА", иначе - "НЕТ" - C++
Даны две строки. Если они начинаются с одинаковых символов, то напечатать &quot;ДА&quot;, иначе - &quot;НЕТ&quot;. (5)

OpenCV C++ vs2010 error C2446: :: нет преобразования "const char *" в "_TCHAR *" - C++
Добрый день уважаемые форумчане. Столкнулся с небольшой проблемой. Выбивает ошибку: &quot;error C2446: :: нет преобразования &quot;const char *&quot; в...

Для массива из 10 чисел проверить, есть ли в нем два одинаковых числа и напечатать "да" или "нет" - C++
void check_same(const int* a) { for (const int* p = a; p &lt; a + 9; p++) for (const int* q = p+1; q &lt; a + 10; q++) ...

Дано предложение. Заменить в нем все вхождения буквосочетания "да" на "нет" - C++
Дано предложение. Заменить в нем все вхождения буквосочетания да на нет.


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
20.09.2010, 08:23
Ответ Создать тему
Опции темы

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