我無法理解此問題的答案,並希望得到更多有經驗的Java實踐者的意見。評估布爾表達式
以下哪項將評估爲true只有當布爾表達式A
,B
,和C
全是假的?
(A)!A && !(B && !C)
(B)!A || !B || !C
(C)!(A || B || C)
(d)!(A && B && C)
(E)!A || !(B || !C)
我的回答是d,因爲我的印象是,下所有布爾表達式都是錯誤的,但答案是C.
回答解釋
(C)爲了!(A || B || C)
是真實的,(A || B || C)
必須評估爲假。只有在A
,B
和C
都是全部錯誤時纔會發生這種情況。當A
和B
爲假並且C
爲真時,選項A的計算結果爲true。在選項B中,如果有的A
,B
或C
爲假,則布爾表達式的計算結果爲true。在選項D中,如果A
,B
或C
中的任何一個爲假,則布爾表達式的計算結果爲true,因爲我們有!(false)
。選擇E評估爲真所需的全部內容爲A
爲假。由於true||(any)
的計算結果爲true,因此B
和C
都可以是真或假。
你不瞭解什麼? –
「答案解釋」聽起來像對答案的解釋... –
只要A,B或C中的任何一個都是假,但問題就說:只有當它們全都是假時,D才爲真。 –