簡體   English   中英

更好的方法來查找兩個變量是否為真或兩者都是錯誤的

[英]Better ways to find if both variables are true or both are false

我有兩個變量,可以是true或false。 我通過在數據庫上查詢某些產品ID的存在與否來獲得這些。

現在我需要設置另一個變量,它將是true或false。 當兩個變量都為真或兩者都為假時,它將是真值。 這將是假的一個是真的而另一個是假的。

目前我使用if語句來處理它

if ( v1 == true && v2 == true )
 result = true;
else if ( v1==false && v2 == false )
 result = true;
else if ( v1 == true && v2 == false )
 result = false;
else if ( v1==false && v2 == true )
 result = false;

有沒有更好的方法來做到這一點?

我可能會遺漏一些非常基本的東西,但我會試一試:

result = ( v1 == v2 );

您可以使用邏輯XOR運算符和邏輯NOT運算符:

result = !(v1^v2);

在給出真值表的情況下,這種問題最小化了重現真值所需的邏輯,通常很好地處理, 卡諾圖

你的真相表如下:

v1 v2  f(v1, v2)
  t  t     t
  t  f     f
  f  t     f
  f  f     t

實際上,正如其他人所指出的那樣,鑒於真值表,對邏輯的基本熟悉應立即產生功能! XOR

但是,如果您使用真值表並將其繪制為卡諾圖,它看起來像:

v2
       f   t 
     ---------
 v  f| t | f |
 1  t| f | t |
     ---------

功能如下:!v1!v2 || v1v2如果再看一下2變量卡諾圖的例子 ,可以看出簡化到了! XOR

不可否認,2個變量卡諾圖可能最好用普通的邏輯運算來處理,熟悉和記憶。 但是當擴展到超過2個變量時,卡諾圖非常有啟發性 - 你應該研究它們。

使用XOR運算符(^):

boolean result = !(v1 ^ v2)

簡單的方法是,如果兩個變量相等則應該為真,如果任何一個為假,則為假。 檢查一下。

if(v1 == v2)
    return true;
else 
    return false;
if(v1 == v2) 
return true; 
else 
return false;

為什么不比較兩者呢?

if(v1 == v2) result = true;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM