我正在尝试输入一个整数用于输入并仅在数字为< = 2000时打印它,否则要求用户一次又一次地重新输入该数字。
当我输入一个大于2000的数字时,它要求我再次输入数字(这正是我想要做的),如果我输入一个大于2000的数字再次它什么也没做。这个循环似乎永远在运行,但我不知道自己做错了什么。任何帮助表示赞赏。
这是用C ++编写的代码。
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
int main(){
unsigned int a = 0 ;
int out = 1;
cout << "Please enter a number : " << endl;
while (out){
cin >> a;
if (a > 2000) {
cout << "Number is greater than 2000 !" << endl;
cout << endl;
cout << "Please enter the number again : " << endl;
cin >> a;
out = 1;
} else {
cout << "Your entered number is : " << endl << a << endl;
out = 0;
}
}
return 0;
}
答案 0 :(得分:1)
如果我再次输入大于2000的数字则无效
这是不对的,它正在等待您输入下一个cin
输入。因为cin
值大于2000的循环中有两个a
,所以cin
没有得到提示。
您的程序可以简化很多,更改while loop
部分如下
while (out){
cin >> a;
out=a>2000?1:0;
if(out)
cout<<"Enter number again ";
}
答案 1 :(得分:1)
我没有测试过,但你可以试试这个:
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
int main(){
unsigned int a = 0 ;
cout << "Please enter a number : " << endl;
while (true){
cin >> a;
if (a > 2000) {
cout << "Number is greater than 2000 !" << endl;
cout << endl;
cout << "Please enter the number again : " << endl;
} else {
cout << "Your entered number is : " << endl << a << endl;
break;
}
}
return 0;
}
答案 2 :(得分:1)
在if (a > 2000)
不要cin,你的代码将开始工作,原因是你不需要在这里输入,因为循环会为你做。