Проблема с ограничением ввода пользователя

Для следующего, я пытаюсь ограничить ввод пользователя только Y или y или N или n. Пожалуйста, следуйте моим комментариям по кодам, чтобы я мог указать, в чем проблема. Я очень новичок в этом форуме, у меня есть страсть к программированию, пожалуйста, помогите мне, если кто-нибудь может. БЛАГОДАРЮ ВАС. Цикл while (не цикл do-while) - это та часть, с которой у меня проблемы. Я думаю, может быть, я не использовал!= Правильно. У меня пока нет ничего слишком продвинутого, класс, в котором я сейчас учусь, - просто вводный уровень.

    cout << "Would you like to use this program again?: ",
    cin >> ans;

    if(ans =='Y'||ans =='y'||ans =='N'||ans =='n')
        break;
    else //This is where I'm having problem with.
        while (ans != 'Y'||ans != 'y'||ans !='N'||ans !='n')
        {
            cout << "Please enter Y or y if you like to use the program again and N or n do exit.",
            cin >> ans; //If the question is asked and no matter what I input for ans, the while loop never gets exited. Why? Is there something I didn't use right?
        }
}while (ans == 'Y'||ans =='y');

return 0;

1 ответ

Лучший способ справиться с вашей логикой будет иметь один do Цикл, который постоянно запрашивает у пользователя ввод да / нет, пока он не даст его:

do {
    cout << "Please enter Y or y if you like to use the program again and N or n do exit.",
    cin >> ans;
} while (ans != 'Y' || ans != 'y' || ans !='N' || ans !='n');
Другие вопросы по тегам