While не понятно работает

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Lotles
Сообщения: 59
Зарегистрирован: 03 июл 2010, 12:42

Почему когда ввожу n цикл не прекращается ?

Код: Выделить всё

#include "stdafx.h"
#include "conio.h"
using namespace std;
int main(){
	char letter;
	char* str=new char[50];
	int i=0; 
	cout << "Prodolgit? (Y/N): ";
	do{
      letter = cin.get();
	  str[i]=letter;
	  i++;
	}
	while (letter!='n' || letter!='N');
	str[i]='\0';
   cout << endl << "Vi vveli: " << str << endl; 
}
Albor
Сообщения: 491
Зарегистрирован: 06 сен 2004, 13:34
Откуда: Днепропетровск

В условии цикла используется операция ИЛИ. Анализируй: ты ввёл 'n', первая операция сравнения (letter!='n') вернёт false, но, так как у нас ИЛИ, будет проверено второе условие, возвращающее true - цикл пошёл дальше.
BBB
Сообщения: 1298
Зарегистрирован: 27 дек 2005, 13:37

Albor писал(а):В условии цикла используется операция ИЛИ. Анализируй: ты ввёл 'n', первая операция сравнения (letter!='n') вернёт false, но, так как у нас ИЛИ, будет проверено второе условие, возвращающее true - цикл пошёл дальше.
_____ ППКС :)
Ответить