正在跳过true条件

时间:2014-04-07 20:09:30

标签: c++ if-statement

我试图弄清楚为什么会跳过这种情况。这是一个二维数组,它是非常自我解释的是什么被比较。这里的代码首先是解释。

if ((reversed[i][j] == true) && (circle[i][j] == 'C'))
{
   reversed[i][j] == false;
}
else if (circle[i][j] == 'C')
   reversed[i][j] == true;

问题在于,如果它是真的,它会跳过其他人;我在代码之前使用cout进行了测试,我说:

cout<<circle[i][j]; 

它显示它确实是&#39; C&#39;这很奇怪,我从来没有见过这样的东西。我希望我能找到一些简单的东西。

圈定义如下:

char **circle;

circle = new char *[SIZE];
for (int i = 0; i < SIZE; i++)
  circle[i] = new char[SIZE];

1 个答案:

答案 0 :(得分:7)

你确定要写吗

if ((reversed[i][j] == true) && circle[i][j] == 'C'))
{
  reversed[i][j] == false;
}
else if (circle[i][j] == 'C')
  reversed[i][j] == true;

而不是这个?

if ((reversed[i][j] == true) && circle[i][j] == 'C')
{
  reversed[i][j] = false; // assignment here
}
else if (circle[i][j] == 'C')
  reversed[i][j] = true;  // assignment here