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

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

Войти
Регистрация
Восстановить пароль
 
Tantay
0 / 0 / 0
Регистрация: 28.04.2012
Сообщений: 115
#1

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

01.08.2013, 17:50. Просмотров 250. Ответов 2
Метки нет (Все метки)

Задачка: Программа должна отображать меню из четырех пунктов, каждый из них помечен буквой. Если пользователь вводит букву, отличающуюся от четырех допустимых, программа должна повторно приглашать его ввести правильное значение до тех пор, пока он этого не сделает.

с таким вот условием цикл останавливается:
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++ не пойму в чем дело
В чём тут дело??? C++
Ни как не разберусь в чем дело... C++
getline() в чем дело C++
C++ Как обстоит дело с квадратиками?
не могу понять в чем дело C++
C++ в чем дело?
В чем дело? C++
C++ Пятиминутное дело!В чем ошибка?
C++ Не правильно работает программа, возможно дело в операторе if

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,917
Записей в блоге: 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
Сообщений: 115
01.08.2013, 17:57  [ТС]     Возможно дело в цикле #3
спасибо
Yandex
Объявления
01.08.2013, 17:57     Возможно дело в цикле
Ответ Создать тему
Опции темы

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