У меня есть квестоин. Все здесь, похоже, работает нормально, кроме следующей строки:Два условия для цикла while. Какая у меня ошибка?
} while (OneMoreTime != 'y' || OneMoreTime != 'n');
Полный код;
#include <iostream>
using namespace std;
int main()
{
int ARRAY_LENGTH = 5;
int MyArray[ARRAY_LENGTH] = {1, 2, 3, 4, 5};
cout << "Values in the array: " << ARRAY_LENGTH << endl;
for (char OneMoreTime = '\0'; OneMoreTime = 'n';)
{
int WhichNumber = ARRAY_LENGTH;
do
{
cout << "What numbers from the array do you want to see, counting backwards? ";
cin >> WhichNumber;
} while ((WhichNumber > ARRAY_LENGTH) || (WhichNumber <= 0));
//calculating the correct position in the array (from start)
int Number2Print = ARRAY_LENGTH - WhichNumber;
//printing
cout << "The number is: " << MyArray[Number2Print] << endl;
//continue?
do
{
cout << "One more time? (y/n) ";
cin >> OneMoreTime;
} while (OneMoreTime != 'y' || OneMoreTime != 'n');
}
return 0;
}
Что я получаю это постоянно просит «еще один раз? (Y/N)» после того, как успешно печати в первый раз. Если я просто использую одно условие, оно будет работать (но этого будет недостаточно).
Используйте '&&', а не '||'. –
'(OneMoreTime! = 'Y' || OneMoreTime! = 'N')' Разве это не всегда так? – drescherjm