簡體   English   中英

C#邏輯運算符

[英]C# Logical Operator

Iam正在一個應用程序上,我需要基於其他兩個布爾變量ab的值來獲取布爾標志值f 以下是條件:

  1. 如果ab都為真,則ftrue
  2. 如果ab均為假,則ftrue
  3. 如果a為true且b為false,則ftrue
  4. 如果a為假而b為真ffalse

我想知道是否有一種簡單的方法(如單個運算符)來獲取f的值,而不是我擁有的值:

a?true:(b?false:true)

a ? true : cond a ? true : cond等效於a || cond a || condb ? 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)

當我將您的規則分解成更簡單的術語時,我得到了:

  1. 如果a == bftrue
  2. 否則, f == a

因此,此表達式的一種簡單形式為:

f = (a == b) || a

暫無
暫無

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

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