-1

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

我有三个变量。

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

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

4

2 回答 2

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

或者

bool allThreeEqual = (condition1 == condition2) && (condition2 == condition3);
于 2012-12-11T13:29:27.790 回答
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;

有人会争辩说上面的内容并不优雅。我不同意。以上内容简单、直接,并且易于理解、维护和扩展。对我来说,这听起来像是优雅的定义。

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

于 2012-12-11T16:28:17.013 回答