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

Возможно дело в цикле - C++

Восстановить пароль Регистрация
 
Tantay
0 / 0 / 0
Регистрация: 28.04.2012
Сообщений: 110
01.08.2013, 17:50     Возможно дело в цикле #1
Задачка: Программа должна отображать меню из четырех пунктов, каждый из них помечен буквой. Если пользователь вводит букву, отличающуюся от четырех допустимых, программа должна повторно приглашать его ввести правильное значение до тех пор, пока он этого не сделает.

с таким вот условием цикл останавливается:
C++
1
2
    
while (b != 'c');
а вот с таким, нечего не происходит:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using namespace std;
 
int main()
{
    setlocale (LC_ALL, "Russian");
    
    const int m = 4;
    const char * mas[m]=    {"c) помидор", "p) урюк", "t) баклажан", "g) баран"};   
    char b;
    
 
    do{
        cout << "Выберите один из варинтов:"<<endl;
        for (int i=0; i<m; i++)
        {
            if (i!=2)
                cout << mas[i] << "\t";
            else
                cout <<endl<< mas[i]<<"\t";
        
        }
 
        cout << endl << "-> ";
        cin >> b;
    }
    while (b != 'c' || b !='p' || b != 't' || b != 'g');
 
    system ("pause");
}
объясните пожалуйста в чем проблема.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.08.2013, 17:50     Возможно дело в цикле
Посмотрите здесь:

небольшая ошибка в чем дело? C++
C++ не пойму в чем дело
В чём тут дело??? C++
getline() в чем дело C++
C++ Как обстоит дело с квадратиками?
C++ в чем дело?
В чем дело? C++
C++ Не правильно работает программа, возможно дело в операторе if

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
01.08.2013, 17:55     Возможно дело в цикле #2
while (b != 'c' || b !='p' || b != 't' || b != 'g');
это означает, что если будет нажато с, то цикл всё равно продолжится, т.к. истинны условия b !='p'||b != 't'||b != 'g'
C++
1
while (b != 'c' && b !='p' && b != 't' && b != 'g');
Tantay
0 / 0 / 0
Регистрация: 28.04.2012
Сообщений: 110
01.08.2013, 17:57  [ТС]     Возможно дело в цикле #3
спасибо
Yandex
Объявления
01.08.2013, 17:57     Возможно дело в цикле
Ответ Создать тему
Опции темы

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