C++ if语句中的Bug
无论我向s[I]添加什么字符串,当我删除| |或它工作正常时,我仍然会得到一个yes作为输出C++ if语句中的Bug,c++,C++,无论我向s[I]添加什么字符串,当我删除| |或它工作正常时,我仍然会得到一个yes作为输出 for(int i=0; i<T; i++) { if(s[i]=="ccc"||"ccs") { cout<<"yes"<<endl; } else { cout<<"no"<<endl; } 它是这样写的: if(s[i] == "ccc" || s[i] ==
for(int i=0; i<T; i++)
{
if(s[i]=="ccc"||"ccs")
{
cout<<"yes"<<endl;
}
else
{
cout<<"no"<<endl;
}
它是这样写的:
if(s[i] == "ccc" || s[i] == "ccs")
将您的if条件更改为:
if(s[i] == "ccc" || s[i] == "ccs")
你认为这意味着什么:ccc | | | ccs?它是什么?请学习如何提出可接受的质量问题。您需要在| |运算符的每一侧写一份完整的声明;也就是说,如果something==value_1 | | something==value_2。@tambre在这种情况下,很明显s与问题无关。问题是OP不理解复合逻辑语句如何正常工作。我认为这是一个完全可以接受的问题,尽管这是一个重复的问题,欢迎使用Stack Overflow!请不要理会反对票——这里的一些人可能会很快判断新手的问题。希望链接的重复问题以及现有的答案和注释能让您深入了解代码中的问题,并解释为什么这样做有效,但他的不起作用?