Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Java 7 Grundkurs

Logische und Vergleichsoperatoren

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Hier geht es um die logischen bzw. vergleichenden Operatoren, die Java zu bieten hat, aber schauen Sie selbst, welche Rückgabetypen für Sie zur Verfügung stehen.
08:06

Transkript

In diesem Video schauen wir uns die logischen Operatoren und die Vergleichsoperatoren an. Die Beispiele dafür habe ich in dieser Klasse "logische Operatoren" zusammengefasst. Beginnen wir mit den Vergleichsoperatoren. Hier haben wir die typischen Möglichkeiten, um zwei Werte miteinander zu vergleichen: "kleiner als", "größer als", "kleiner oder gleich", "größer oder gleich", das hier ist das "gleich", also ob zwei Werte gleich sind, nicht zu verwechseln mit dem einfachen Gleichheitszeichen für die Zuweisung, und schließlich "ungleich". Das Ergebnis eines solchen Vergleichs ist immer ein boolescher Wert, also immer "wahr" oder "falsch", bzw. "true" oder "false". Ich kann einen solchen Vergleich also wie hier, z.B. als Bedingung in einem "If" benutzen, ich kann aber auch das Ergebnis eines solchen Vergleichs einer booleschen Variable zuweisen. "B" habe ich hier oben deklariert als "boolean". Die ersten vier Operatoren lassen sich immer nur auf numerische Werte anwenden. Ich kann also ganze Zahlen und Kommazahlen vergleichen, "char" ist ebenfalls möglich, aber ich kann nicht z.B. zwei boolesche Werte miteinander vergleichen und Objekte gleich gar nicht. Also z.B. auch keine Zeichenketten. Kommen wir nun zu den logischen Operatoren. Der Erste lässt sich am besten als "nicht" bezeichnen. Er kehrt einfach den Wahrheitswert um. Ich habe hier z.B. den Vergleich 3 < 4, das ergibt "true". Dieses "true" kann ich einer booleschen Variablen zuweisen, was ich hier auch machen. Mit dem "nicht" vor der Variablen kehr ich jetzt den Wahrheitswert um, und damit bekommt B jetzt den Wert "false". Dieser Operator nimmt nur einen Operanden, der nächste hingegen nimmt gleich 3 davon. Deshalb wird er auch als ternärer Operator bezeichnet, und er funktioniert folgendermaßen: Ich habe hier zwei Variablen "X" und "Y", die die Werte 3 und 4 bekommen, und dann habe ich hier eine Variable "Min", die bekommt das, was bei diesem Ausdruck hier rauskommt. Der Ausdruck begnnt mit einer Bedingung, nämlich "X < Y", und das Ergebnis des Ausdrucks ist X, wenn die Bedingung erfüllt ist, und es ist Y, wenn die Bedingung nicht erfüllt ist. Hier bestimmen wir also in einer Anweisung den kleineren von zwei Werten, und weisen das Ergebnis gleich einer weiteren Variablen zu. Es funktioniert also ein bisschen so wie ein "If, Else", nur dass wir hier nur einen einzigen Ausdruck haben, und nicht mehrere Anweisungen, und dass dieser eine Ausdruck immer etwas zurückgibt, was das "If, Else" ja nicht unbedingt muss. Das funktioniert auch nicht nur mit Zahlen. Der gesamte Ausdruck kann einen beliebigen Datentyp zurückgeben. In diesem Beispiel ist der Rückgabetyp "String". Wenn X kleiner ist als 10 wird "niedrig" zurückgegeben und ansonsten "hoch". Und das Ergebnis haben wir hier in der Variablen "Text". Operand 1 ist also immer eine Bedingung, ein boolescher Wert, und die Typen von Operand 2 und 3, sowie Rückgabetyp, sollten immer zueinander passen. Die nächsten drei Operatoren stehen für "und", "oder" und "exklusives oder" oder "XOR". Mit diesen Operatoren lassen sich immer zwei Wahrheitswerte verknüpfen, also zwei boolesche Werte, und sie ergeben dann jeweils wieder einen neuen booleschen Wert. Bei der "und"-Verknüpfung müssen beide Operanden "wahr" sein, damit auch das Ergebnis "wahr" ist. Bei der "oder"-Verknüpfung genügt es, wenn einer von beiden wahr ist. Und bei der "exklusiven oder"-Verknüpfung muss genau einer von beiden "wahr" sein, und der andere "falsch". Auch für diese Operatoren habe ich hier wieder Beispielausdrücke. Bei dem Ersten verknüpfe ich das Ergebnis von zwei Vergleichen mit einem "und". Und das Ergebnis von diesem "und" verknüpfe ich dann per "oder" mit dem Ergebnis dieses dritten Vergleichs. Gehen wir mit den beiden Werten 3 für "X" und 4 für "Y" hier in diesen Ausdruck hinein, dann ergibt der erste Teil "wahr", der zweite Teil ergibt ebenfalls "wahr", und somit ergibt die "und"-Verknüpfung auch wieder "wahr". Dieses Ergebnis wird jetzt "oder"-verknüpft mit diesem dritten Vergleich hier, 3 ist nicht gleich 4, das ergibt hier also "false". "true oder false" ergibt insgesamt dann aber "true". Was in diesem Ausdruck jetzt keine Auswirkung hat, wo ich aber trotzdem drauf hinweisen möchte: "und" hat eine höhere Priorität als "oder", d.h. genau genommen sieht das Ganze so aus, so, d.h. das "und" wird auf jeden Fall zuerst ausgewertet. Wenn Sie sich mal unsicher sein sollten, was den Vorrang angeht, oder wenn Sie es hätten nachschlagen müssen, dann setzen Sie die Klammern lieber. Lesbarkeit und Verständlichkeit sind ja auf jeden Fall wichtiger als einfach nur coole Ausdrücke zu schreiben, die dann am Ende vielleicht aber falsch sind. Kommen wir nun noch zum Dritten im Bunde, dem "exklusiven oder". Auch hier werden zwei Wahrheitswerte miteinander verknüpft. Der erste muss "wahr" oder "falsch" sein, und der zweite "falsch" oder "wahr", damit das Gesamtergebnis "wahr" bleibt. In unserem Fall ist also zwar das erste Ergebnis "true", und das zweite ebenfalls, aber die Gesamtverknüpfung mit dem "exklusiven oder", also mit dem "entweder oder", ergibt demzufolge "false". Nun gibt es noch zwei Spezialversionen für "und" und "oder", die etwas cleverer sind als die Standardoperatoren. Man könnte auch sagen etwas fauler. Um zu verdeutlichen, was das bedeutet, habe ich auch hier wieder ein kleines Beispiel. Nehmen wir an, wir haben irgendeine Methode, die heißt "Hol den Namen". Diese Methode gibt irgendeinen Namen zurück, und wir möchten den Namen gerne auf maximal drei Zeichen haben. Es ist aber auch zulässig, dass diese Methode gar keinen Namen findet, und dann würde sie "null" zurückgeben. Bevor wir also unseren Namen kürzen können, müssen wir erst mal testen, ob eventuell "null" zurückgegeben wurde. Wir schreiben also erstmal "if (Name ungleich null)". Wenn die Bedingung erfüllt ist, dann können wir im nächsten Schritt testen, "if (Name.length 3)", d.h. wenn unser Name länger als drei Zeichen ist, dann holen wir uns aus dem Namen die ersten drei Zeichen raus, hier mit dieser Methode "substring", und weisen das Ergebnis wieder unserer Variablen "Name" zu. Damit haben wir den Namen auf maximal drei Zeichen gekürzt. Nun könnten wir versucht sein, diese beiden geschachtelten "Ifs" zusammenzufassen zu einer Bedingung, und die mit "und" zu verknüpfen. Das würde dann ungefähr so aussehen: Nun, die Klammer muss auch noch weg, genau. Sieht gut aus, hat aber einen kleinen Schönheitsfehler: es funktioniert nicht. Natürlich möchte ich, dass sowohl die erste Bedingung erfüllt ist, als auch die zweite. Das Problem ist, ich kann die zweite nicht erfolgreich testen, wenn die erste bereits fehlschlug. Sollte "Name" nämlich "null" sein, also das hier vorne "false", dann würde "Name.length" ins Leere greifen, eine "Exception" werfen, und die Anwendung würde vorzeitig beendet werden. Da kommt nun das clevere "und" ins Spiel, zwei "und" Zeichen hintereinander. Dieses "Abkürzungs-und" macht nun folgendes: es wertet zuerst einmal, wie auch das normale "und", den Ausdruck auf der linken Seite aus. Sollte dieser Ausdruck "wahr" sein, dann macht es weiter mit dem auf der rechten Seite, denn das Ergebnis für den den Gesamtausdruck ist ja noch offen. Ist der Ausdruck auf der linken Seite aber "false", dann kann bei einer "und"-Verknüpfung das Ergebnis nur noch "false" lauten, völlig egal, was auf der rechten Seite rauskommen sollte. Deshalb wird also in diesem Fall, "false" auf der linken Seite, die rechte Seite gar nicht mehr ausgewertet. Dieses Doppel-"und" spart sich also die Auswertung der rechten Seite, wenn die linke Seite "false" ergibt, und damit der Gesamtausdruck bereits klar ist, nämlich "false". Dieses "Doppel-oder" funktioniert analog. Wenn auf der linken Seite bereits "true" rauskommt, dann ist für das "oder" klar, der Gesamtausdruck wird "true", völlig egal, was rechts rauskommt, wird also rechts auch nicht mehr ausgewertet. Damit kennen Sie nun alle logischen Operatoren und die Vergleichsoperatoren, die Java so zu bieten hat.

Java 7 Grundkurs

Machen Sie sich mit den Grundlagen der Java-Programmierung vertraut und lernen Sie die Syntax der Sprache sowie das Konzept der objektorientierten Softwareentwicklung kennen.

8 Std. 32 min (66 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!