我想以这样的方式给出条件:如果所有值都是0或1,则执行某些逻辑。
我有三个变量。
0 0 0 -> evaluates to True
1 1 1 -> evaluates to True
所有其他组合评估为False。我该如何为此编写逻辑?
答案 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;
有人会争辩说上面并不优雅。我不同意。以上内容简单明了,简单易懂,易于理解,维护和扩展。听起来像是对我优雅的定义。
编写完这个简单的逻辑后,您可以评估是否需要对此代码进行性能基准测试。如果你这样做,并且你确定这确实是一个真正的瓶颈,那么你可以通过利用元素之间的传递关系来模式化优化它。几乎每次都会足够快,而且根本不需要做任何改变。