沿着这条线,在 C++ 中是否有类似于 boolean 值的就地 AND 和 OR 运算符?
bool someOk=false;
for(int i=0; i<10; i++){
someOk||=funcReturningBoolOnSuccess(i);
}
(我知道我可以写 someOk=someOk||funcReturningBoolOnSuccess(i)
,但它没有那么漂亮)。
最佳答案
答案很简短:不,C++ 语法不允许这样的结构。
你必须使用:
something = something || something_else;
但是...如果您的函数在成功时返回 bool(例如,成功时返回 true)...您为什么不直接使用以下内容?
someOk = funcReturningBoolOnSuccess(i);
无论如何它都不会在失败时返回 false 吗?似乎不合逻辑。
你为什么不这样做:
bool someOk=false;
for(int i=0; i<10; i++){
if (funcReturningBoolOnSuccess(i)) {
someOk = true;
break;
}
}
效率更高:)
关于c++ - 在 C++ 中就地 bool AND 和 OR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17589797/