# DeMorgan’s Laws

### DeMorgan’s Laws

De Morgan’s laws state that specific Boolean statements can be written in different ways to the same effect.

The rules can be expressed in English as:

• the negation of a disjunction is the conjunction of the negations
• the negation of a conjunction is the disjunction of the negations

or

• the complement of the union of two sets is the same as the intersection of their complements
• the complement of the intersection of two sets is the same as the union of their complements

or

not (A or B) = (not A) and (not B)

not (A and B) = (not A) or (not B)

The negation modifies each conditional as shown below

• < becomes >=

• > becomes <=

• == becomes !=

• <= becomes >

• >= becomes <

• != becomes ==

Why it is useful during programming?

It could help us and others to more easily read the if statements, and it’s also useful to refactor some if’s monsters (if u know what I mean).

Examples

• (!a && !b && !c), we will read it as, “not ‘a’, not ‘b’ and not ‘c’”.

after change:

• !(a || b || c), by using the second method, we can simply read this as “at least one of these is required.”

• (!a || !b || !c),after while we see that all requirements must be met

after change:

• !(a && b && c), now we see it immediately

Summary

De Morgan’s Laws can help simplify your code to make it more readable. You can change a sequence of negated ands to something that reads as “at least one of these is required”, and a sequence of negated ors to something that reads as “all of these are required.”

Tags:

Categories:

Updated: