[英]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.