Это довольно неуклюже, так как вам, по сути, нужно дважды проверить условия. (Ваша конкретная проблема в неправильном логическом тесте: вам нужно &&
, а не ||
).
. Вместо этого используйте функцию с проверкой:
int getAction(void)
{
for (;;)/*infinite loop idiom*/{
int action; /*scope as local as possible*/
cin >> action;
if (action >=1 || action <= 4){
return action; /*this is ok, so return*/
}
cout << "I'm sorry, but I'm not sure what you want to do. Please tell me again using the corresponding number. (1/2/3/4)\n\n";
}
}