Once you click post assignment, learners in the selected class will immediately be able to see and complete this assignment

Back to Classroom

De Morgans Law

Java Selection Statements Course

Engineers From These Top Companies and Universities Trust EXLskills

1M+ Professionals | 100+ Institutions

This is the EXLskills free and open-source Java Selection Statements Micro Course. It guides learners via explanation, demonstration, and thorough practice, from no more than a basic understanding of Java, to a moderate level of understanding regarding Java selection statements.

Is this course FREE?

Yes, this a 100% free course that you can contribute to on GitHub here!

De Morgan's Law is helpful to remember for the AP exam because it will be useful with questions regarding boolean expressions. De Morgan's Law show how the NOT operator (!) can be distributed when it exists outside a set of parenthesis. Look below for a few examples of how De Morgan's Law works.

DeMorgansLawExample.java

package exlcode;
public class DeMorgansLawExample {
public static boolean exampleVariableOne = true;
public static boolean exampleVariableTwo = false;
public static void main(String[] args) {
// The two boolean expressions below are equal
if (!(exampleVariableOne && exampleVariableTwo)) {
System.out.println("The boolean expression is true");
} else {
System.out.println("The boolean expression is false");
}
if (!exampleVariableOne || !exampleVariableTwo) {
System.out.println("The boolean expression is true");
} else {
System.out.println("The boolean expression is false");
}
}
}

Some of the more common iterations for De Morgan's Law:

!(A && B) is the same as !A || !B

!(A || B) is the same as !A && !B

!(C > D) is the same as C <= D

!(C < D) is the same as C >= D

!(C >= D) is the same as C < D

!(C <= D) is the same as C > D

!(E == F) is the same as E != F

!(E != F) is the same as E == F

Remember, you do not have to limit yourself to two operands when you work with the "AND" operator and the "OR" operator. !(A && B && C) is the same as !A||!B||!C. For the iterations shown above, A and B have to be boolean values, C and D have to be numbers and E and F may be a variety of data types.

Application Question

Which of the following expressions is equivalent to: !(varOne || varTwo)