Logical Operators Part 4
Teil des Abschnitts Grundlagen der Java-Journey von Coddy — Lektion 26 von 73.
Das De-Morgansche Gesetz ist eine Regel, die uns hilft, Ausdrücke mit NOT zu vereinfachen. Beim Arbeiten mit logischen Ausdrücken müssen wir sie manchmal vereinfachen oder umordnen.
Wenn du not vor zwei durch and verbundenen Bedingungen hast, kannst du es in zwei separate Teile aufteilen. Das and wird zu or, und jeder Teil erhält sein eigenes not:
!(A && B) ist dasselbe wie (!A) || (!B)
Zum Beispiel:
// Let's check if a number is NOT (between 1 and 10)
int number = 15;
// These two expressions are equivalent:
boolean result1 = !(number >= 1 && number <= 10);
boolean result2 = !(number >= 1) || !(number <= 10);
System.out.println(result1); // true
System.out.println(result2); // trueDas Umgekehrte gilt ebenfalls: !(A || B) ist dasselbe wie (!A) && (!B)
Zum Beispiel:
// Prüfen, ob eine Person NICHT (Student oder beschäftigt) ist
boolean isStudent = false;
boolean isEmployed = false;
// Diese beiden Ausdrücke sind äquivalent:
boolean result1 = !(isStudent || isEmployed);
boolean result2 = !(isStudent) && !(isEmployed);
System.out.println(result1); // wahr
System.out.println(result2); // wahrAufgabe
AnfängerDu hilfst einem Tiergeschäft dabei, ein System zu erstellen, um zu bestimmen, ob sie ein Haustier an einen Kunden verkaufen können.
Initialisiere die folgenden Variablen:
hasLicensemit dem WerttruehasSpacemit dem WertfalsehasExperiencemit dem Werttrue
Schreibe die folgenden logischen Ausdrücke, um zu bestimmen, ob:
canSellRegularPet: Kunde braucht ENTWEDER eine Lizenz ODER Erfahrung, UND muss Platz habencanSellExoticPet: Kunde braucht BEIDE eine Lizenz UND Erfahrung, UND muss Platz habencannotSellAnyPet: Kunde hat KEINE Lizenz UND KEINE Erfahrung, ODER hat KEINEN Platzresult:canSellRegularPetODERcanSellExoticPetODERcannotSellAnyPet
Tipp: Verwende die Variablenwerte direkt in deinen Ausdrücken. Zum Beispiel ist hasSpace false, also bedeutet „muss Platz haben“, dass du hasSpace so wie es ist verwendest (ohne !) — die Variable hält bereits den echten Wert. Verwende ! nur, wenn die Bedingung das Gegenteil dessen verlangt, was die Variable hält, wie z. B. „hat KEINE Lizenz“ → !hasLicense.
Spickzettel
Das De-Morgansche Gesetz hilft, logische Ausdrücke mit NOT-Operatoren zu vereinfachen:
!(A && B) ist äquivalent zu (!A) || (!B)
!(A || B) ist äquivalent zu (!A) && (!B)
Beispiel mit AND:
int number = 15;
boolean result1 = !(number >= 1 && number <= 10);
boolean result2 = !(number >= 1) || !(number <= 10);
// Both expressions are equivalentBeispiel mit OR:
boolean isStudent = false;
boolean isEmployed = false;
boolean result1 = !(isStudent || isEmployed);
boolean result2 = !(isStudent) && !(isEmployed);
// Both expressions are equivalentProbier es selbst
public class Main {
public static void main(String[] args) {
// Variablen initialisieren
// Bedingungen berechnen
boolean canSellRegularPet =
boolean canSellExoticPet =
boolean cannotSellAnyPet =
boolean result =
// Die folgenden Zeilen nicht löschen
System.out.println("Can sell regular pet: " + canSellRegularPet);
System.out.println("Can sell exotic pet: " + canSellExoticPet);
System.out.println("Cannot sell any pet: " + cannotSellAnyPet);
System.out.println("Result: " + result);
}
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operators Part 1
Arithmetic OperatorsModulo OperatorIncrement/DecrementPost Increment/DecrementArithmetic ShortcutsComparison OperatorsString Comparison5Operators Part 2
Logical Operators Part 1Logical Operators Part 2Recap - Simple LogicLogical Operators Part 3Logical Operators Part 43Variables Part 2
ConstantsNaming ConventionsRecap - Initialize VariablesType Casting Part 1Type Casting Part 26Decision Making
If StatementIf - ElseSwitch StatementTernary OperatorRecap - If ElseNested If - Else