所以,這是我更大的C++程序中的一小段代碼。所有相關部分都包含在內。while循環不會以C++結尾
char weekDay;
char inputWeekDay;
char daysInTheWeek[7] = { 'm','t','w','p','f','s','z' } ;
int days = 1723;
weekDay = daysInTheWeek[days%7] ;
cout << weekDay << endl ;
cin >> inputWeekDay ;
while (inputWeekDay != ('m'&'t'&'w'&'p'&'f'&'s'&'z')) {
cout << "Your input isn't one of the above.\nTry again." << endl ;
cin >> inputWeekDay ;
}
if (inputWeekDay == weekDay) {
cout << "Your input is correct." ;
}
else {
cout << "Your input isn't correct.\nYou will now get kicked out of this program." ;
return 1;
}
當我運行這個部分,我輸入例如「G」當我問inputWeekDay,它給了我「你的輸入是不正確的。\ n您現在將被踢出這個節目的。 「錯誤,並再次問我,這是應該發生的事情。但之後,當我鍵入例如'm',這不等於weekDay,但不是while循環中的條件之一,它使我處於while循環中,並再次出現錯誤。當我輸入正確的'weekDay'時,情況也是如此,它仍然會給我提供錯誤信息。
任何想法可能導致這種情況?先謝謝你。
你完全濫用邏輯和位運算符。 – SLaks 2014-09-12 21:32:48
你在做什麼是一個AND的7個字符,並將其與inputWeekDay進行比較,而這幾乎不等於inputWeekDay – 2014-09-12 21:32:50
您在while循環檢查中執行按位&運算符... – Arpit 2014-09-12 21:33:30