簡體   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