所以,这是我更大的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