Logische Operatoren

&& (Logisches UND)

Die gesamte Bedingung ist nur true, wenn beide Teilausdrücke true sind.

Zum Beispiel: if(x > 0 && x < 10) ist nur wahr, wenn x sowohl größer als 0 als auch kleiner als 10 ist.

|| (Logisches ODER)

Die gesamte Bedingung ist true, wenn mindestens einer der Teilausdrücke true ist. Sie ist nur false, wenn beide Teilausdrücke false sind.

Zum Beispiel: if(x == 0 || x == 10) ist nur wahr, wenn x den Wert 0 oder 10 hat.

! (Logisches NICHT)

Kehrt den Wahrheitswert um. !a ist true, wenn a false ist, und umgekehrt.


Aufgabe 1: Der Einlass-Checker (Kombination von && und ||)
Szenario: Ein Club hat eine Altersbeschränkung ab 18 Jahren. Wer jünger ist, darf nur rein, wenn eine Begleitperson dabei ist und ein Muttizettel vorliegt.

int alter = 16;
boolean hatBegleitung = true;
boolean hatMuttizettel = true;

// Ersetze das Fragezeichen durch den richtigen logischen Ausdruck

boolean darfRein = (?); // hier das (?) ersetzen
if (???) {
  System.out.println("Einlass gewährt!");
}


Aufgabe 2: Die Rabatt-Aktion (Kurzschluss-Auswertung / Short-Circuit)

Szenario:
Ein Online-Shop gibt Rabatt, wenn ein Kunde Premium-Mitglied ist oder wenn der Warenkorb einen Wert von über 100€ hat.

boolean istPremium Kunde = false;
double warenkorbWert = 120.50;

// Welcher Operator gehört hier hin?
if (istPremiumKunde ??? warenkorbWert > 100) {
  System.out.println("Rabatt erhalten: " + bekommtRabatt);
}
Deine Aufgabe: Welcher Operator (&& oder ||) muss eingesetzt werden, damit die Bedingung für den Rabatt korrekt erfüllt ist?

Aufgabe 3: Das Logik-Rätsel (Wahrheitswerte umkehren mit !)
Szenario: Manchmal muss man Bedingungen negativ prüfen. Versuche, den finalen Wert dieser Variablen im Kopf zu bestimmen:

boolean istEsRegnerisch = true;
boolean hatEinenRegenschirm = false;

boolean wirdNass = istEsRegnerisch && !hatEinenRegenschirm;

System.out.println("Wird die Person nass? " + wirdNass);

Deine Aufgabe:
Welchen Wert (true oder false) gibt das Programm aus?