c++简单的while循环不循环

标签 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++ 很陌生,所以感谢任何帮助 :)

最佳答案

你的 while 条件是错误的,它应该是 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;
}

关于c++简单的while循环不循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40509300/

相关文章:

c++ - Constexpr CRTP析构函数

C++清理控制台窗口

c++ - 如何以五个数字的行显示输出?

c++ - DirectX 10 中的平均三角形

c++ - 为什么转发引用不是常量?

c++ - 哪些是 C++ 和 Qt 中的线程安全打印语法?

c++ - 如何散列 QVariant?

c++ - 带指针参数的函数

c++ - 可以将 .Net String 交给 fn(const char16_t* str) w/o 复制吗?

c++ - 在 C++ 中使用多维数组跟踪索引