2011-08-14 147 views
1

鉴于这种逻辑操作:复杂逻辑运算

(A和B)或(c和d)

是否有写而无需使用任何括号并给予相同的结果相似的表达的方法吗?逻辑运算符AND,OR,NOT的使用是允许的。

回答

4

是:

A and B or C and D 

在大多数编程语言,and被认为具有更高的优先级比or(这分别源于的andor等价于*+)。

当然,如果你原来的表情一直:

(A or B) and (C or D) 

你不能简单地删除括号。在这种情况下,你必须“乘去”的因素:

A and C or B and C or A and D or B and D 
+0

在大多数编程语言的情况下。不幸的是,我遇到了一个程序,它有一些过滤器,可以与AND/OR结合使用。当我尝试4个不同的条件与我的问题中显示的逻辑操作相关联时,程序似乎像“线性地”应用它们,应用第一个,然后将结果应用到第二个,依此类推。所以,如果例如我有A = TRUE,B = TRUE,C = FALSE,D = FALSE,我想有一个TRUE的结果,但程序不会显示任何条目,这让我认为它返回FALSE 。 – Dan737

+0

如果程序通过一个接一个地应用操作开始,那么这将是有意义的。假设我们有A = TRUE,B = TRUE,C = FALSE,D = FALSE。那么中间结果是: 1. TRUE和TRUE = TRUE 2. TRUE或FALSE = TRUE 3. TRUE和FALSE = FALSE这是最终结果。 – Dan737

+0

我想补充一句“在大多数编程语言中”。逻辑AND在支持重载的语言中具有更高的优先级(这不包括Java,C和包含C++的wiki)。如果我错了,请纠正我。 – 2014-04-28 10:22:56

1

如何A AND B OR C AND D?这是因为AND优先于OR

0

只是不要放任何圆括号,它是一样的......