Ein Leitfaden für Anfänger zu logischen und relationalen Operatoren in Java
Operatoren sind Symbole, die verwendet werden, um Operationen mit Werten, Variablen oder Anweisungen auszuführen. Die Ausdrücke, an denen sie diese Aktionen ausführen, werden Operanden genannt. Die Operationen geben ein boolesches Ergebnis (wahr oder falsch) für Vergleichs-, Gleichheits- und logische Operatoren zurück.
Die Anzahl der Operanden, die ein Operator verwendet, bestimmt seinen Typ. Ein Operator, der einen Operanden verwendet, wird als "unär" bezeichnet. Ein Operator, der zwei Operanden benötigt, wird als "binär" bezeichnet.
Lesen Sie weiter, um zu erfahren, wie Sie logische und relationale Operatoren in Java verwenden können. Besser noch, die meisten Programmiersprachen verwenden dieselben Operatoren, sodass Sie dieses Wissen an anderer Stelle anwenden können.
Logische Operatoren
Sie werden verwendet, um beim Programmieren logische Anweisungen zu erstellen. In Java gibt es sechs logische Operatoren. Die folgende Tabelle fasst sie zusammen.
Operator | Name | Art |
---|---|---|
| | Boolesches logisches ODER | Binär |
& | Boolesches logisches UND | Binär |
^ | Boolesche Logik Exklusiv ODER | Binär |
|| | Bedingtes ODER | Binär |
&& | Bedingtes UND | Binär |
! | Logisches NICHT | Einstellig |
Wenn Sie überprüfen möchten, ob eine oder beide Bedingungen zutreffen, verwenden Sie diesen Operator. Eine Bedingung ist ein Ausdruck, der entweder wahr oder falsch sein kann.
Boolesches logisches inklusives ODER (|)
Das logische ODER prüft, ob beide Operanden wahr sind, bevor der Ausdruck ausgewertet wird.
if ( dob < 2005 | height <= 5){
money++;
}
Das obige Beispiel gibt jemandem mehr Geld, wenn sein Geburtsdatum (Geburtsdatum) weniger als 2005 beträgt oder wenn seine Größe kleiner oder gleich 1,50 m ist.
Boolesches logisches UND (&)
Dieser Operator wird verwendet, um zu überprüfen, ob beide Bedingungen wahr sind, bevor ein bestimmter Ausführungspfad im Programm verwendet wird. Es prüft zuerst, ob beide Bedingungen wahr sind, bevor der gesamte Ausdruck ausgewertet wird.
Boolesches logisches exklusives ODER (^)
Wenn Sie prüfen möchten, ob eine der Bedingungen zutrifft, aber nicht beide, dann ist dies der zu verwendende Operator. Die Wahrheitstabelle unten fasst die Ergebnisse zusammen, die Sie sehen werden, wenn Sie sie verwenden.
Ausdruck1 | Ausdruck2 | Ausdruck1 ^ Ausdruck2 |
---|---|---|
falsch | falsch | falsch |
falsch | wahr | wahr |
wahr | falsch | wahr |
wahr | wahr | falsch |
Boolesches bedingtes UND (&&)
Dieser Operator ähnelt dem logischen UND. Der Unterschied besteht darin, dass zuerst überprüft wird, ob die Bedingung auf der linken Seite wahr ist, bevor die Bedingung auf der rechten Seite überprüft wird.
Wenn sich herausstellt, dass der linke Teil falsch ist, wird die Ausführung sofort beendet. Andernfalls wird die Bewertung des rechten Teils fortgesetzt. Diese Funktion wird als Kurzschlussauswertung bezeichnet.
Sehen Sie sich die Wahrheitstabelle unten an, um Ihr Verständnis dieses Operators zu begründen.
Ausdruck1 | Ausdruck2 | Ausdruck1 && Ausdruck2 |
---|---|---|
falsch | falsch | falsch |
falsch | wahr | falsch |
wahr | falsch | falsch |
wahr | wahr | wahr |
Bedingtes ODER (||)
Wenn eine der Bedingungen falsch ist, springt die Ausführung zum nächsten Teil des Programms. Mit anderen Worten, beide Bedingungen müssen wahr sein.
Dieser Operator ähnelt dem logischen ODER. Es überprüft auch, ob eine oder beide Bedingungen erfüllt sind, bevor bestimmten Code ausgeführt wird.
Ähnlich wie beim bedingten UND verwendet auch das logische ODER die Kurzschlussauswertung. Es prüft zuerst, ob der linke Operand wahr ist, bevor der rechte ausgewertet wird.
Wenn sich herausstellt, dass die Bedingung auf der linken Seite wahr ist, muss die Bedingung auf der rechten Seite nicht überprüft werden. Andernfalls wird die Auswertung rechts fortgesetzt.
Logisch NICHT (!)
Dieser Operator wird verwendet, um eine Bedingung zu negieren. Es kehrt einfach die Bedeutung dessen um, worauf es operiert.
if(!(x>5)){
// statements
}
Die obige Anweisung bedeutet, dass, wenn "x größer als 5" NICHT wahr ist, die Anweisungen innerhalb von if ausgeführt werden .
Beachten Sie die Verwendung von runden Klammern mit dem Ausdruck (x>5). Wenn Sie diese Klammern beim Schreiben Ihres Programms nicht einfügen, erhalten Sie einen Kompilierungsfehler. Der Grund ist, weil ! ist ein unärer Operator, der auf eine Bedingung reagiert. Ohne die Klammern würde der Compiler es als den Operator interpretieren, der auf das x wirkt, nicht auf x>5.
Das Einfügen von Klammern dient nicht nur dazu, dem Compiler die korrekte Interpretation eines Ausdrucks zu ermöglichen. Sie können dem Programmierer auch als Möglichkeit dienen, komplexere Ausdrücke besser zu verstehen. Sehen Sie sich das folgende Beispiel an:
age >= 7 && height < 5
Manchen Leuten fällt es vielleicht schwer, der Logik zu folgen. Daher ziehen es einige Programmierer aus Gründen der Lesbarkeit vor, redundante Klammern hinzuzufügen:
(age >= 7) && (height < 5)
Relationale Operatoren
Diese Operatoren werden verwendet, um einfache Beziehungen zwischen Operanden zu vergleichen.
Operator | Name |
---|---|
> | Größer als |
< | Weniger als |
>= | Größer als oder gleich wie |
<= | Gleich oder kleiner als |
Relationale Operatoren sind ziemlich einfach zu verstehen, da sie alle dieselbe Bedeutung haben wie die üblichen algebraischen Operatoren, mit denen Sie bereits vertraut sind. Das heißt, > und < haben dieselbe Bedeutung, die Sie bereits kennen, wie in der obigen Tabelle.
if( x <= 7 ){
x++;
}
Die obige if- Anweisung prüft, ob x kleiner oder gleich 7 ist. Wenn wahr, dann werden die Anweisungen in den Klammern ausgeführt, andernfalls nicht.
Jetzt wäre ein guter Zeitpunkt, Gleichheitsoperatoren zu erwähnen. Es gibt nur zwei davon ( gleich, == und !=, nicht gleich ). Wie der Name schon sagt, werden sie verwendet, um die Gleichheit zwischen zwei Operanden zu testen.
Der Gleichheitsoperator (==) ist nicht mit dem Zuweisungsoperator (=) zu verwechseln. Programmieranfänger lieben es, beides zu vermischen. Dies ist sinnvoll, da in der Algebra das Symbol (=) verwendet wird, um Gleichheit auszudrücken. Das ist beim Programmieren aber nicht richtig.
Der Zuweisungsoperator (=) weist einer Variablen einen Wert zu, während der Gleichheitsoperator (==) auf Gleichheit prüft. Sehen Sie sich das folgende Beispiel an, um den Unterschied zu verstehen:
if(x=5){
// statements
}
Der obige Code wird immer ausgeführt, unabhängig davon, ob x tatsächlich gleich 5 ist. Währenddessen wird der folgende Code nur ausgeführt, wenn x gleich 5 ist. Daher ist es wichtig, die beiden nicht zu verwechseln.
if(x==5){
// statements
}
Die beiden erwähnten Gleichheitsoperatoren haben die gleiche Priorität, jedoch niedriger als die von Vergleichsoperatoren.
Auch relationale Operatoren haben dieselbe Priorität. Die Ausführung dieser Operatoren beginnt von links nach rechts.
Weitere Überlegungen zu Java-Operatoren
Sie müssen bemerkt haben, dass in einigen Beispielen Leerzeichen zwischen einigen Operatoren und ihren Operanden vorhanden sind, während dies in anderen nicht der Fall ist.
Die Abwesenheit/Anwesenheit dieses Raums sollte Sie nicht beunruhigen. Der Compiler ignoriert es. Daher bedeuten die folgenden Ausdrücke dasselbe:
Y>=7 // no whitespace
Y >= 7 // with whitespace
Relationale Operatoren werden im Allgemeinen verwendet, um einfache Bedingungen auszudrücken. Um einfache Bedingungen zu komplexeren zu kombinieren, müssen Sie logische Operatoren verwenden. Logische Operatoren können mehrere Bedingungen testen, im Gegensatz zu relationalen Operatoren, die nur eine Bedingung testen.
Es ist auch wichtig zu beachten, dass die logischen Operatoren ( |, &, ^) bitweise Operatoren sein können, wenn sie ganzzahlige Operanden haben. Wenn sie als bitweise Operatoren verwendet werden, arbeiten sie mit den Bits ihrer Operanden.
Mit diesem Wissen über Operatoren sollten Sie sich jetzt darauf vorbereiten, Java-Klassen zu lernen.