【问题标题】:Use bool array in if statement c++在if语句c ++中使用bool数组
【发布时间】:2015-09-06 14:48:37
【问题描述】:

我是编程和 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];
     }
  }

【问题讨论】:

  • 你的标题不会帮助任何有同样问题的人找到这个问题。

标签: c++ arrays boolean


【解决方案1】:

是的。您可以将布尔值与布尔文字进行比较。但是,在 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
【解决方案2】:

假设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;
}

【讨论】:

    【解决方案3】:

    尽量优化代码为

    If(Alphabet[I])
    

    或者

    If(!Alphabet[I])
    

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

    谢谢

    【讨论】:

    • C++ 区分大小写
    猜你喜欢
    • 2013-07-22
    • 1970-01-01
    • 2017-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多