C++ 语法帮助:else-if语句中带全零的行
我基本上是在尝试编写一个else-if语句,当行的第一个元素不是-1或者行不是全零时,它会过滤掉一行。比如说,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
-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);
↑ ↑
- 使用
=代码>而不是
==代码>
- 删除
在
后面加上code>,因为这就像写if
,在你的例子中,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++中编码了多长时间?我大约两个月前才开始学习,这很难。