Не выходит из цикла Do{}while();

Тема в разделе "Общие вопросы по С и С++", создана пользователем Kanstantsin, 16 фев 2011.

  1. Kanstantsin

    Kanstantsin Гость

    Здравствуйте!
    Я пишу в MS Visual C++ 2005. Создаю обычно win32 приложение... (это так... на всякий случай)

    Вот часть кода:
    Код (C++):
    ...
    int txt = 16, bin = 8, read = 4, write = 2, add = 1;
    int  number = 0;
    char indikator = 'a';
    do
    {
    cout << "data is (t)ext or (b)inary: ";
    cin >> indikator;
    switch (indikator)
    {
    case 't':   number |= txt;                   break;
    case 'b':   number |= bin;                   break;
    default :   cout << "Your choise is false.\n"; break;
    }
    } while ((indikator != 't')||(indikator != 'b'));
    ...
    Проблема в том, что не выходит из цикла, даже тогда когда введено с клавиатуры 't' или 'b'.
    Пробывал оставлять только одно условие завершения цикла (indikator != 't') и цикл работал нормально. Но вот с двумя почему-то не хочет. Почему?

    Спасибо за помощь.
     
  2. ierofant

    ierofant Гость

    Допустим, вводим t, тогда в условии while:
    t != t - false
    t != b - true
    false || true = true
    Поэтому и не выходит.

    Должно быть:
    Код (C++):
    while ((indikator != 't') && (indikator != 'b'));
     
  3. Kanstantsin

    Kanstantsin Гость

    ierofant, спасибо) Дошло наконец=)

    а я то дума, что цикл работает пока индикатор не равен Т или пока он не равен Б.
     
Загрузка...

Поделиться этой страницей