1

我基本上是在尝试编写一个 else-if 语句,如果该行的第一个元素不是 -1 或者该行不是全零,则该语句会过滤掉一行。例如,

-1 0 0 1 1
0 0 0 0 0 

都会通过

1 0 1 1 1不会

我为此拥有的代码部分是

else if (headSetChecked && j!= cols-1) 
{
   if (tempRow[0]!== -1 || tempRow[j]!== 0);
   {
        isScrap=true;
        break;
   }
}

我收到错误 C2059: syntax error:'=' om the "if statement"。我知道我的语法是错误的,但我不确定要改成什么。“tempRow”是我要通过并过滤掉不符合条件的行的数组。提前感谢您的帮助!

4

2 回答 2

2
if (tempRow[0]!== -1 || tempRow[j]!== 0);
               ↑                   ↑
  • 使用!=与不使用!==
  • 删除;之后,if因为它就像写作if (tempRow[0]!== -1 || tempRow[j]!== 0) {},在你的情况下,isScrap = true;并且break;总是被执行,因为你if什么都不做。
于 2013-11-14T14:39:37.383 回答
1

正如您在语句中所写的那样,C++ 中没有像 !== 这样的运算符

    if (tempRow[0]!== -1 || tempRow[j]!== 0);

因此编译器将其拆分为两个运算符 != 和 = 并报告错误。

另外我想补充一点,选择所需行的条件可以用以下方式编写

if ( tempRow[0] == -1 || 
     std::all_of( tempRow, tempRow + 5, std::bind2nd( std::equal_to<int>(), 0 ) ) )
{
   // the condition has been satisfied
}
于 2013-11-14T14:42:16.063 回答