我是编程和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];
}
}
答案 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)
假设Alphabet
是bool
的数组,您只是测试该数组元素的值。这是非常安全的 - 它可以比你写的更简单地完成:
if (Alphabet[i]) {
std::cout << A[i] << std::endl;
}
else {
std::cout << A[i];
}
bool
可以拥有的唯一值是true
和false
。明确地将bool
相等的值与true
或false
进行比较是不必要的冗余(并且这种比较在某些情况下可能是危险的);只测试值本身的值。一旦你测试了它是true
,就没有必要再次测试它是false
;只需使用else
子句。如果您需要测试它是false
,请使用!
(逻辑“非”)运算符:if (! Alphabet[i])
。
最后,您无条件地打印A[i]
的值,因此该部分不需要位于if
或else
内:
std::cout << A[i];
if (Alphabet[i]) {
std::cout << std::endl;
}
答案 2 :(得分:0)
尝试将代码优化为
If(Alphabet[I])
或
If(!Alphabet[I])
是的,你可以按照你的方式进行比较,没有错。
由于