2016-04-01 11 views
0

Для следующего, я пытаюсь ограничить вход пользователей только 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; 

ответ

0

Лучший способ справиться с вашей логики будет иметь один 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');