2011-08-14 73 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

只是不要放任何圓括號,它是一樣的......