C++ 当我输入一个被接受的数字时,为什么我的do while循环没有中断?

C++ 当我输入一个被接受的数字时,为什么我的do while循环没有中断?,c++,C++,无论我输入接受的值还是不接受的值,循环都会继续运行 #include <iostream> #include <vector> using namespace std; int main(){ int size; bool accepted = ((size == 0) || (size == 3) || (size == 4) || (size == 5));

无论我输入接受的值还是不接受的值,循环都会继续运行

        #include <iostream>
        #include <vector>
        using namespace std;

        int main(){
          int size;
          bool accepted = ((size == 0) || (size == 3) || (size == 4) || (size == 5));
          /************************************************************************/
          do {
            cout << "Enter number of digits in code (3, 4 or 5): " << flush;
            cin >> size;
          } while (!accepted);
          /************************************************************************/
          //static_cast<const int>(size);
          cout << size;
          return 0;
        }
#包括
#包括
使用名称空间std;
int main(){
整数大小;
布尔接受=((大小==0)| |(大小==3)| |(大小==4)| |(大小==5));
/************************************************************************/
做{
cout大小;
}而(!接受);
/************************************************************************/
//静态铸件(尺寸);

coutbool不是每次迭代都更新的。只在开始时更新。要使逻辑工作,您需要将

accepted = ((size == 0) || (size == 3) || (size == 4) || (size == 5));
循环的内部

        int main(){
          int size;
          bool accepted;
          /************************************************************************/
          do {
            cout << "Enter number of digits in code (3, 4 or 5): " << flush;
            cin >> size;
            accepted = ((size == 0) || (size == 3) || (size == 4) || (size == 5));
          } while (!accepted);
          /************************************************************************/
          //static_cast<const int>(size);
          cout << size;
          return 0;
        }
intmain(){
整数大小;
布尔接受;
/************************************************************************/
做{
cout大小;
已接受=((大小==0)| |(大小==3)| |(大小==4)| |(大小==5));
}而(!接受);
/************************************************************************/
//静态铸件(尺寸);

当代码< > BoOL接受= 行时,C++的运行程序是否自顶向下。