#include <iostream>
int main()
{
int number;
using namespace std;
cout<<"write number between 1 and 10:"<<endl;
cin>>number;
if (number<=10 && number>=1)
cout<<"correct!"<< endl;
else
do{
cout<<"wrong! new number:"<<endl;
cin>>number;
}
while(number>10 && number<1);
}
循环只进行一次并直接结束:(我希望它无休止地进行直到满足条件。我对c ++很新,所以任何帮助都表示赞赏:)
答案 0 :(得分:1)
您的状况有误,应该是or
而不是and
那里(||
而不是&&
)。为避免此类错误并使代码更清晰,请尽量避免重复代码,即从字面上或逻辑上做同样的代码。在您的代码中,您从cin
输入两次,并检查条件两次:
int number = 0;
while( true ) {
cout << "Enter number between 1 and 10:";
cin >> number;
if( number >= 1 && number <= 10 )
break;
cout << "invalid number, try again" << endl;
}
答案 1 :(得分:0)
while条件显然不正确。 不存在> 10 且 <1的变量。 试着放一个||而不是&amp;&amp;在条件优先。
答案 2 :(得分:0)
#include <iostream> int main() { int number; using namespace std; cout<<"write number between 1 and 10:"<<endl; cin>>number; if (number<=10 && number>=1) cout<<"correct!"<< endl; else do{ cout<<"wrong! new number:"<<endl; cin>>number; } while(number<10 && number>1); }
你的条件是不对的,我已经解决了这个问题。 你的病情甚至没有达到过一次 由于在检查条件之前完成任务。