c ++简单while循环不循环

时间:2016-11-09 14:26:24

标签: c++

#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 ++很新,所以任何帮助都表示赞赏:)

3 个答案:

答案 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); }

你的条件是不对的,我已经解决了这个问题。 你的病情甚至没有达到过一次 由于在检查条件之前完成任务。