繁体   English   中英

逻辑混乱给条件

[英]Logical confusion for giving if condition

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

我有三个变量。

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

所有其他组合的评估结果均为False。 我该如何写逻辑呢?

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

要么

bool allThreeEqual = (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;

有人会辩称,上述说法并不优雅。 我不同意。 上面的内容很简单,直接,愚蠢,易于理解,维护和扩展。 听起来对我来说优雅的定义。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM