[英]C# Logical Operator
Iam正在一個應用程序上,我需要基於其他兩個布爾變量a
和b
的值來獲取布爾標志值f
。 以下是條件:
a
和b
都為真,則f
為true
。 a
和b
均為假,則f
為true
。 a
為true且b
為false,則f
為true
。 a
為假而b
為真f
為false
我想知道是否有一種簡單的方法(如單個運算符)來獲取f的值,而不是我擁有的值:
a?true:(b?false:true)
a ? true : cond
a ? true : cond
等效於a || cond
a || cond
和b ? false : true
b ? false : true
與!b
相同,因此您可以使用:
bool result = a || !b;
您要尋找的是反方向的邏輯含義:
a<=b
a 1 1 0 0
b 1 0 1 0
a<=b 1 1 0 1
編輯:我沒有對我的答案給出很好的解釋,關於C#解釋以及實際的邏輯含義是:
首先,=>是if ... then的形式符號。
P => Q表示如果P則Q。
邏輯含義非常直觀,因為我們可以將大多數情況轉換為自然語言。 例:
如果n> 3,則n + 1> 3
這顯然是真的。
裸露一些東西-引用邏輯推理:第一門課程 :
在普通語言中,“如果...那么”具有雙重含義。 假設您說“如果正在下雨,那么我不會來”。 通常這也意味着``但是如果不下雨,我會來的。確實您沒有說出最后一句話,但是,有些常識可以得出最后一句話的結論。
關於如何在此鏈接上使用C#中的邏輯含義的一個很好的解釋: https : //ericlippert.com/2015/11/05/logical-implication/
此外,李的回答確實是正確的。 格式的邏輯含義
C#中的a => b是(!a || b)
因此,問題的答案將是
C#中的a <= b是(a ||!b)
當我將您的規則分解成更簡單的術語時,我得到了:
a == b
, f
為true
f == a
因此,此表達式的一種簡單形式為:
f = (a == b) || a
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.