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