2010-07-05 46 views
3

對不起,這是一個「Logical Operators 101」類問題。我一直在盯着我的屏幕15分鐘試圖圍住它,但我卡住了。我可以簡化這個使用邏輯否定運算符的條件語句嗎?

有沒有更簡潔/優雅地表達以下(這是JavaScript語法,但它不是一個語言相關的問題):

if (!something && !something_else) { 
    // do something 
} 

基於一些實驗,這不顯得邏輯等效:

if (!(something && something_else) { 
    // do something 
} 

此外,任何人都可以推薦一個在線資源(S)進一步研究這些問題?我假設這種類型的東西在計算機科學課程的抽象層面上被覆蓋了,而且這是我真正想填補的編程知識中的一個重要缺陷。謝謝!

回答

10
(Not A) And (Not B) 

等同於:

Not (A Or B) 

它的De Morgan's laws

+2

+1打破線路,改變標誌! – 2010-07-05 04:00:55

+0

謝謝,米奇!所有正確的答案在這裏 - 所有都非常感謝 - 但我也很感謝你包括的鏈接。這正是我所期待的。 – Bungle 2010-07-05 04:05:16

+0

@Bungle。那麼你應該接受他的回答。他會明白我確定 – Ben 2010-07-05 04:06:03

3

應用正確的表述應該是:

if (!(something || something else)) { 
    // do something 
} 

當您將否定它切換之間的運營商AND和OR。

3

我想,你需要

if (!(something || something_else)) { 
    // do something 
} 

!東西& &!something_else的意思是 「沒有的東西,既不something_else」,這相當於 「既不是(某事或something_else)」

相關問題