如果条件给出的逻辑混乱

时间:2012-12-11 13:27:58

标签: c++ c boolean-logic

我想以这样的方式给出条件:如果所有值都是0或1,则执行某些逻辑。

我有三个变量。

   0 0 0 -> evaluates to True
   1 1 1 -> evaluates to True

所有其他组合评估为False。我该如何为此编写逻辑?

2 个答案:

答案 0 :(得分:7)

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

bool allThreeEqual = (condition1 == condition2) && (condition2 == condition3);

答案 1 :(得分:0)

首先用简单的代码表达你在用语言表达的想法:

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;
有人会争辩说上面并不优雅。我不同意。以上内容简单明了,简单易懂,易于理解,维护和扩展。听起来像是对我优雅的定义。

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