12 Logische Operatoren
Aufgabe 12-1: Auftrag abgeschlossen?
Ein Auftrag soll dann als abgeschlossen gelten, wenn die bestellte Ware versandt ist und der Kunde diese bezahlt hat.
Auftrag (UML)
Die Attribute versanddatum und zahlungseingang besitzen beide den Typ LocalDate. Objekte dieser Klasse kapseln Datumswerte und bieten zahlreiche Methoden zur Darstellung und Manipulation von Datumswerten.
Solange die bestellte Ware noch nicht versandt ist, besitzt das Attribut versanddatum den Wert null. Sobald die Ware versandt ist, wird ihm ein Objekt der Klasse LocalDate zugewiesen, welches das jeweilige Versanddatum enthält.
Beim Zahlungseingang ist der Vorgang analog.
Aufgabe
Lesen Sie zunächst den Abschnitt „Merke: Logische Operatoren“ und klären Sie anschließend welcher logische Operator im Quellcode an der mit einem Fragezeichen ( ? ) gekennzeichneten Stelle einzufügen ist (vgl. Abb. 12-2). Lösung
boolean abgeschlossen = false;
if(versanddatum != null ? zahlungseingang != null) {
abgeschlossen = true;
}
return abgeschlossen;
}
istAbgeschlossen(): booleanSollen mehrere Bedingungen gleichzeitig bzw. alternativ erfüllt sein, können diese mit Hilfe logischer Operatoren wie zum Beispiel einem logischem UND bzw. einem logischem ODER verknüpft werden.
| Operator | Bezeichnung | Bedeutung |
|---|---|---|
| && | logisches UND |
Der gesamte Ausdruck ist wahr, wenn alle verknüpften Ausdrücke wahr sind. Sobald einer der verknüpften Ausdrücke falsch ist, werden nachfolgende Ausdrücke nicht mehr geprüft. |
| || | logisches ODER |
Der gesamte Ausdruck ist wahr, wenn einer, mehrere oder alle der verknüpften Ausdrücke wahr sind. Sobald einer der verknüpften Ausdrücke wahr ist, werden nachfolgende Ausdrücke nicht mehr geprüft. |
Beispiele
| Ausdruck | Bedeutung |
|---|---|
umsatz > 5000
|
Der gesamte Ausdruck ist wahr, wenn der Umsatz mehr als 5.000 EUR und zugleich weniger als 10.000 EUR beträgt. Andernfalls ist der gesamte Ausdruck falsch. Wenn der Umsatz 5.000 EUR oder weniger beträgt, wird nicht mehr geprüft, ob der Umsatz unter 10.000 EUR liegt. |
schueler.getAlter() >= 18
|
Der gesamte Ausdruck ist wahr, wenn der Schüler mindestens 18 Jahre alt ist oder die Einwilligung der Eltern vorliegt. Wenn der Schüler mindestens 18 Jahre alt ist, wird nicht mehr geprüft, ob die Erlaubnis der Eltern vorliegt |
Aufgabe 12-2: Logische Operatoren
In jeder der folgenden Teilaufgaben ist der Quellcode einer Methode abgebildet, der als Argument ein Objekt der Klasse Mitarbeiter übergeben wird.
Sorgen Sie dadür, dass jede Methode die an sie gestellten Anforderungen erfüllt, indem Sie im Quellcode die mit einem Fragezeichen ( ? ) gekennzeichneten Stellen durch einen geeigneten Ausdruck ersetzen.
Mitarbeiter (UML)-
Auf der Konsole soll „ja“ ausgegeben werden, wenn der jeweilige Mitarbeiter in Tauberbischofsheim oder Wertheim wohnt.Lösung
JAVApublic void aufgabeA(Mitarbeiter pMitarbeiter) {
String wohnort = pMitarbeiter.getWohnort();
if( ? ) {
System.out.println("ja");
}
}Abb. 12-4: Quellcode der Methode aufgabeA(pMitarbeiter: Mitarbeiter) -
Auf der Konsole soll „ja“ ausgegeben werden, wenn der jeweilige Mitarbeiter in der Abteilung Personal arbeitet und die Ausbildereignungsprüfung erfolgreich abgelegt hat. Lösung
JAVApublic void aufgabeB(Mitarbeiter pMitarbeiter) {
String abteilung = pMitarbeiter.getAbteilung();
if( ? ) {
System.out.println("ja");
}
}Abb. 12-5: Quellcode der Methode aufgabeB(pMitarbeiter: Mitarbeiter) -
Auf der Konsole soll „ja“ ausgegeben werden, wenn der jeweilige Mitarbeiter in der Niederlassung Frankfurt in der Instandhaltung arbeitet und mindestens 20 Jahre im Dienst ist. Lösung
JAVApublic void aufgabeC(Mitarbeiter pMitarbeiter) {
String einsatzort = pMitarbeiter.getEinsatzort();
String abteilung = pMitarbeiter.getAbteilung();
if( ? ) {
System.out.println("ja");
}
}Abb. 12-6: Quellcode der Methode aufgabeC(pMitarbeiter: Mitarbeiter)