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

时间:2015-06-20 19:40:12

标签: c++ arrays boolean

我是编程和Stackoverflow的初学者。抱歉我的格式错误和英语很糟糕。我的问题是,如果我能在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];
     }
  }

3 个答案:

答案 0 :(得分:2)

是。您可以将布尔值与布尔文字进行比较。但是,简单地使用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];
}

答案 1 :(得分:1)

假设Alphabetbool的数组,您只是测试该数组元素的值。这是非常安全的 - 它可以比你写的更简单地完成:

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

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

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

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

答案 2 :(得分:0)

尝试将代码优化为

If(Alphabet[I])

If(!Alphabet[I])

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

由于