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

  • Автор темы Kanstantsin
  • Дата начала
K

Kanstantsin

Гость
#1
Здравствуйте!
Я пишу в 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') и цикл работал нормально. Но вот с двумя почему-то не хочет. Почему?

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

ierofant

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

Должно быть:
C++:
while ((indikator != 't') && (indikator != 'b'));
 
K

Kanstantsin

Гость
#3
ierofant, спасибо) Дошло наконец=)

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