在 if 语句 c++ 中使用 bool 数组

Use bool array in if statement c++

我是编程和 Whosebug 的初学者。我为我的错误格式和我的英语感到抱歉。我的问题是我是否可以做 if 括号中的事情。谢谢:)

for(int i=0;i<A.size();++i)
{
     if(Alphabet[i]==false)
            cout<<A[i];
     else if(Alphabet[i]==true)
     {
         cout<<endl<<A[i];
     }
  }

是的。您可以将布尔值与布尔文字进行比较。但是,简单地为 if 语句使用 bool 值会更容易。这样做看起来像这样

if(!Alphabet[i]) // Originally if(Alphabet[i]==false)

像这样

else if(Alphabet[i]) // Originally else if(Alphabet[i]==true)

您甚至不必测试第二个条件。因为如果第一条语句不执行它总是会执行,所以您可以用 else 语句替换它。这会将您的 else if 语句更改为 else。像这样

else
{
    cout<<endl;
    cout<<A[i];
}

尝试将代码优化为

If(Alphabet[I])

If(!Alphabet[I])

是的,你可以按照你的方式进行比较,没有错。

谢谢

假设 Alphabetbool 的数组,您只是在测试该数组的一个元素的值。它非常安全——而且它可以比你写的更简单:

if (Alphabet[i]) {
    std::cout << A[i] << std::endl;
}
else {
    std::cout << A[i];
}

bool 可以具有的唯一值是 truefalse。明确地将 bool 值与 truefalse 进行相等性比较是不必要的冗余(这种比较在某些情况下可能很危险);只是测试值本身的值。一旦你测试了它是否是true,就不需要再测试它是否是false;只需使用 else 子句。如果您需要测试它是否是 false,请使用 !(逻辑 "not")运算符:if (! Alphabet[i]).

最后,您将无条件打印 A[i] 的值,因此该部分不需要位于 ifelse 中:

std::cout << A[i];
if (Alphabet[i]) {
    std::cout << std::endl;
}