#c #loops #data-structures #switch-statement #do-while
#c #циклы #структуры данных #оператор switch #do-while
Вопрос:
У меня проблема со следующим кодом
switch(adminChoice){
case 1:
do{
cout<<"nEnter Student ID: ";
cin>>studentId;
cout<<"nEnter Student Name: ";
cin>>studentName;
cout<<"nEnter Student Password: ";
cin>>studentPassword;
cout<<"nAdd another account? y/n ";
cin>>adminSubChoice;
}
while(adminSubChoice!='n' || adminSubChoice !='N');
break;
case 2:
do while
не прерывается, когда я ввожу n или N для char
переменной adminSubChoice
, она продолжает выполняться снова и снова. Может кто-нибудь сказать мне, что я делаю не так??
Комментарии:
1. Спасибо, чувак. Я получил свой ответ, а также он упоминается в вопросе adminSubChoice — переменная типа char.
Ответ №1:
Условие adminSubChoice!='n' || adminSubChoice !='N'
всегда будет истинным, потому что ни один символ не будет одновременно n
и N
одновременно.
Условие должно быть adminSubChoice!='n' amp;amp; adminSubChoice !='N'
.
Комментарии:
1. В качестве продолжения этого ответа рассмотрите возможность ознакомления с законами Де Моргана, поскольку они, похоже, являются тем, что вы пытались выяснить: en.wikipedia.org/wiki/De_Morgan’s_laws .
2. @MikeCAT это сработало. Теперь я понял. Спасибо
3. @Welbog да, я запутался в операторе OR amp; AND . Спасибо, я проверю это