C# - 具有 2 个变量的逻辑运算符 - 组合运算符以避免 if 语句

Posted

技术标签:

【中文标题】C# - 具有 2 个变量的逻辑运算符 - 组合运算符以避免 if 语句【英文标题】:C# - logical operators with 2 variables - combining operators to avoid if-statements 【发布时间】:2013-06-20 11:32:09 【问题描述】:

我有下表的 2 个布尔值。

我从左到右调用一行语句。

a        b       result
------------------------
false    false   false
false    true    false
true     false   false
true     true    true

现在我必须编写代码才能实现所有这些结果。

我或许可以通过使用一些 if 语句、开关命令和逻辑运算符来解决这个问题。

是否可以创建单个堆复杂的逻辑运算符表达式。

类似:

(a^b)||(a&&b)&(a??b)

..(这只是一个例子,所以你可以理解我在做什么)

另一个问题:

有没有软件可以创建多个随机排列的布尔语句(对于 2 个变量)?

这样的软件有什么限制? (以及行/语句的数量如何影响可能适合作为表达式的解决方案的数量,由逻辑运算符组成)

【问题讨论】:

【参考方案1】:

始终可以将任意数量的布尔变量和状态解析为canonical form。但是,对于只有 2 个变量,只保留一个包含 16 个可能结果的查找表并根据需要使用会更容易。

【讨论】:

对不起,伙计,我不想粗鲁,但我怀疑你是否正确理解了这个问题。我正在寻找规范形式的表达式(谢谢)。一击匹配上表中的这 4 个状态。以及这样做有多少可能的规范形式。有什么软件吗? 2 变量表达式的 16 表中与特定真值表匹配的条目将包含 a && b 您好,感谢您的努力,但我对答案还不满意

以上是关于C# - 具有 2 个变量的逻辑运算符 - 组合运算符以避免 if 语句的主要内容,如果未能解决你的问题,请参考以下文章

C#变量/数据类型转换/运算符使用

C#运算符的优先级

FPGA—多路选择器(简单逻辑组合电路)

FPGA—多路选择器(简单逻辑组合电路)

FPGA的一些知识

好程序员分享Python自动化运维开发实战五-运算符与表达式