bool不想改变价值c ++

时间:2015-09-05 03:55:07

标签: c++ boolean

#include <iostream>

using namespace std;

int main()
{
 int x - 0;
 bool even = true;

 while(cin >> x)
 {
   if(x%2 != 0)
   {
     even = false;
   }
 }

 if(even = true)
 {
   cout << "all even";
 }

 else
 {
    cerr << "not all even";
    return 1;
 }
}

每当我运行这个程序时,无论我插入的值(用户通过在控制台中按CTRL + D结束输入),even的值都保持为true,因为结束输出始终是“all even”。

我很确定bool没有改变,因为它在while语句中,但是我不知道如何解决它,因为我需要把它留在那里检查我输入的每个数字是否是奇数。 / p>

有关如何解决此问题的任何建议吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

if(even = true)

应该是

if(even == true)

&#34;左边的const&#34;人们会认为你的错误可以通过这样做来阻止:

if(true = even)

这样编译器会警告你关于错误的赋值。

答案 1 :(得分:1)

我认为你应该改变这些界限:

int x - 0;int x = 0;

if(even = true)if(even == true)if(even)

可能cerr << "not all even";cout << "not all even";

但该行导致您的问题为if(even = true),您 true分配给even变量,而不是比较它与true