我检查了几个“可能已经有你答案的问题”,但仍然没有找到任何有效的方法。我的问题是一个简单的while循环,当评估为true时,它会循环并询问用户输入,我输入一个应该将while循环评估为false并退出的数字,但它会重复。我第二次输入号码。我对 C++ 还很陌生,但我假设我的 iostream 中出现了一些问题。
1)我输入“0”,它评估while循环为真,并再次要求用户输入,因为它是< 1。2
)当再次提示我输入1,这显然不是< 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;
}