いくつかの「既に回答があるかもしれない質問」を確認しましたが、うまくいったものは見つかりませんでした。私の問題は単純な while ループで、true と評価されるとループしてユーザー入力を要求します。while ループを false と評価して終了する数値を入力しますが、繰り返されます。2回目は番号を入力します。私は C++ にかなり慣れていませんが、私の iostream で何か問題が発生していると思います。
1) 「0」を入力すると、while ループが true と評価され、< 1であるため、ユーザー入力が再度求められます。「無効な数値です -- 数値は bwtween でなければなりません」
3) もう一度 1 を入力すると、while ループは false と評価され、ステップ 2 のように進みます。
コード:
string question = "Enter number of days rented (1-365): ";
int getValidNumber(int num, int lowerNum, int upperNum, string question){
while((num < 1) || (num > 365)) {
cout << endl;
cout << "Invalid number -- the number must be bwtween " <<
lowerNum << " and " << upperNum << "." << endl <<
"Please try again." << endl;
cout << question;
cin >> num;
}
return num;
}