C++ 语法帮助:else-if语句中带全零的行

C++ 语法帮助:else-if语句中带全零的行,c++,if-statement,C++,If Statement,我基本上是在尝试编写一个else-if语句,当行的第一个元素不是-1或者行不是全零时,它会过滤掉一行。比如说, -1 0 0 1 1 0 0 0 0 0 都会通过吗 但是1011不会 这部分代码是 else if (headSetChecked && j!= cols-1) { if (tempRow[0]!== -1 || tempRow[j]!== 0); { isScrap=true; break; } } 我从“i

我基本上是在尝试编写一个else-if语句,当行的第一个元素不是-1或者行不是全零时,它会过滤掉一行。比如说,

-1 0 0 1 1
0 0 0 0 0 
都会通过吗

但是
1011
不会

这部分代码是

else if (headSetChecked && j!= cols-1) 
{
   if (tempRow[0]!== -1 || tempRow[j]!== 0);
   {
        isScrap=true;
        break;
   }
}
我从“if语句”中得到错误C2059:语法错误:'='。我知道我的语法是错误的,但我不知道该改成什么。“tempRow”是我正在遍历的数组,它过滤掉不符合条件的行。提前谢谢你的帮助

if (tempRow[0]!== -1 || tempRow[j]!== 0);
               ↑                   ↑
  • 使用
    =而不是
    ==
  • 删除
    if
    后面加上code>,因为这就像写
    if(tempRow[0]!=-1 | | tempRow[j]!==0){}
    ,在你的例子中,
    isScrap=true
    中断始终执行,因为您的
    if
    不执行任何操作

    • 没有这样的运算符!==在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
      }
      
      if(tempRow[0]=-1 |
      std::全部(tempRow,tempRow+5,std::bind2nd(std::等于(),0)))
      {
      //条件已经满足
      }
      
      不会使TempRow[0]等于-1,而不是作为检查它是否等于-1的条件?不会使TempRow[0]等于-1,而不是检查它是否等于-1的条件?@GCODE No,
      =比较,不分配。如果你做
      =
      ,那将是一项作业。哦,好的。谢谢你在C++中编码了多长时间?我大约两个月前才开始学习,这很难。