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

Цикл с двумя условиями - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.67
zepterman
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 27
12.09.2012, 18:29     Цикл с двумя условиями #1
Подскажите, как написать, цикл который бы останавливался при значении переменной choice равной 1 или 2.

Ввожу так, получается бесконечный цикл.
C++ (Qt)
1
2
3
4
5
6
int choice=0;
    for (;choice!=1 || choice!=2;)
    {
        cout<<"\nPlease, choose 1 or 2\n";
        cin>>choice;
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.09.2012, 18:29     Цикл с двумя условиями
Посмотрите здесь:

С двумя условиями. C++
C++ функция с условиями
C++ Кириллица в консольном приложении Visual Studio C++, но с условиями
C++ Быстрое копирование массивов с условиями
C++ Ошибка с условиями
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
12.09.2012, 18:31     Цикл с двумя условиями #2
C++
1
for (; choice != 1 && choice != 2 ;)
C++
1
for (; (choice != 1) & (choice != 2) ;)
C++
1
for (; (choice != 1) * (choice != 2) ;)
C++
1
for (; !(choice == 1 || choice == 2) ;)
C++
1
for (; !((choice == 1) | (choice == 2)) ;)
C++
1
for (; !((choice == 1) ^ (choice == 2)) ;)
C++
1
for (; !((choice == 1) + (choice == 2)) ;)
zepterman
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 27
12.09.2012, 18:40  [ТС]     Цикл с двумя условиями #3
Цитата Сообщение от Thinker Посмотреть сообщение
C++
1
for (; choice != 1 && choice != 2 ;)
Спасибо, так работает!
Но почему, используется оператор && (И), а не || (ИЛИ) ?

Но моей записи выходит такая трактовка:
Выполнять цикл, если значение переменной не равно 1 или значение переменной не равно 2.

По вашей:
Выполнять цикл, если значение переменной не равно 1 и значение переменной не равно 2.

То есть выходит, что по записи (choice != 1 && choice != 2), цикл должен прекратится, если choice одновременно будет равняться 1 и 2.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
12.09.2012, 18:43     Цикл с двумя условиями #4
Цитата Сообщение от zepterman Посмотреть сообщение
Но почему, используется оператор && (И), а не || (ИЛИ) ?
Выше примеры с различными операциями. Вот еще

C++
1
for (; (choice - 1) && (choice - 2) ;)
C++
1
for (; (choice - 1) * (choice - 2) ;)
Выбирайте
zepterman
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 27
12.09.2012, 18:45  [ТС]     Цикл с двумя условиями #5
Спасибо большое!
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
12.09.2012, 18:47     Цикл с двумя условиями #6
Цитата Сообщение от zepterman Посмотреть сообщение
То есть выходит, что по записи (choice != 1 && choice != 2), цикл должен прекратится, если choice одновременно будет равняться 1 и 2.
Нет. Когда хотя бы одно не выполнится, то сразу цикл прекратится. Посмотрите на определение операций && и ||
Yandex
Объявления
12.09.2012, 18:47     Цикл с двумя условиями
Ответ Создать тему
Опции темы

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