C++ 给出if条件的逻辑混乱

C++ 给出if条件的逻辑混乱,c++,c,boolean-logic,C++,C,Boolean Logic,我想给出一个条件,如果所有值都是0或1,那么执行一些逻辑 我有三个变量 0 0 0 -> evaluates to True 1 1 1 -> evaluates to True 所有其他组合的计算结果均为False。我怎样才能写出这个逻辑呢 bool condition1, condition2, condition3; ... if ((condition1 == condition2) && (condition2 == condition3))

我想给出一个条件,如果所有值都是0或1,那么执行一些逻辑

我有三个变量

   0 0 0 -> evaluates to True
   1 1 1 -> evaluates to True
所有其他组合的计算结果均为False。我怎样才能写出这个逻辑呢

bool condition1, condition2, condition3;
...
if ((condition1 == condition2) && (condition2 == condition3))


首先,用简单的代码用文字表达您的想法:

int a, b, c;

// ...

bool eval = false; // assume false, prove otherwise

if( (a==0) && (b==0) && (c==0) )
  eval = true;
else if( (a==1) && (b==1) && (c==1) )
  eval = true;
有人会说,上述情况并不优雅。我不同意。以上内容简单明了,易于理解、维护和扩展。听起来像是优雅的定义


一旦编写了这个简单的逻辑,您就可以评估是否需要在此代码上进行性能基准测试。如果您这样做了,并且您确定这确实是一个真正的瓶颈,那么您可以通过利用元素之间的可传递关系向前优化它。但是,几乎每次这样做都足够快,根本不需要做任何更改。

请向我们展示您迄今为止所做的工作,以及您为什么没有做到这一点?您是否尝试过向wolfram alpha索要真相表?例如:
(A&B)| C
将为所有可能的布尔组合输出一个真值表,这些布尔组合会导致
if
语句产生true(
A
B
为非零,或者
C
为非零),这里条件x可能有nay值。它是一个整数,您可以将它转换成一个
bool
,或者使用
(conditionX!=0)
我所有的
conditionX
。只需要准确地编写你想要的代码。他做了标记,所以
bool
不是最好的选择。可能是
\u Bool
?或者这是特定于MSVC的
int a, b, c;

// ...

bool eval = false; // assume false, prove otherwise

if( (a==0) && (b==0) && (c==0) )
  eval = true;
else if( (a==1) && (b==1) && (c==1) )
  eval = true;