Java Tutorial Teil 4 – Operatoren

Mit den beim letzten Teil vorgestellten Datentypen kann natürlich auch gerechnet werden. Dazu möchte ich hier die Operatoren vorstellen.

Arithmetische Operatoren

Die arithmetischen Operatoren funktionieren größtenteils wie zu erwarten. So addiert a=b+c; die Werte von b und c und schreibt das Ergebnis in a. Die Operanden könnten aber auch Zahlen statt Variablen sein.

  • + zum Addieren
  • zum Subtrahieren
  • * zum Multiplizieren
  • / zum Dividieren
  • % zum Modulo-Rechnen (dabei handelt es sich um die Division mit Rest: a=b%c speichert den Rest der Division b/c in a ab)

Die Präzedenz der Operatoren ist wie in der normalen Mathematik „Punkt- vor Strichrechnung„, man kann aber natürlich auch Ausdrücke klammern.

Inkrementieren und Dekrementieren

Java bietet Präfix- und Postfixoperatoren ++ und zum Inkrementieren und Dekrementieren von Werten an. Durch a++; oder ++a; wird a um 1 inkrementiert, so wie bei a=a+1; auch. a–; und –a; sind analog dazu zum Dekrementieren um 1. Der Unterschied zwischen a++; und ++a; besteht darin, wann der inkrementierte Wert in a gespeichert wird. Betrachte dazu folgendes Beispiel (der Dekrementoperator funktioniert analog dazu):

Den Variablen a, b, c und d wird jeweils der Wert 1 zugewiesen (Zeile 3-6). In Zeile 7 wird der Postfix-Inkrementoperator angewendet. Dieser bewirkt, dass zuerst a1 der Wert von a zugewiesen wird und erst danach der Wert von a inkrementiert wird. In Zeile 8 hingegen bewirkt der Präfix-Inkrementoperator, dass zuerst der Wert von b inkrementiert wird und danach der inkrementierte Wert an b1 zugewiesen wird. Deswegen hat a1 die Ausgabe 1 aber b1 die Ausgabe 2. Innerhalb von System.out.println(…); funktionieren die Operatoren ebenfalls so (siehe Zeile 11 und 12). In den Zeilen 17 bis 21 wird schließlich noch gezeigt, dass das Gleiche auch innerhalb von Rechnungen gilt (denn 11 modulo 3 = 2). Eine kleine Anmerkung an dieser Stelle: Rechnungen können auch innerhalb von System.out.println(…); stehen. Es wird dann aber nur das Ergebnis der Rechnung ausgegeben.

Vergleichsoperatoren

Zu den Vergleichsoperatoren bei Java gibt es nicht besonders viel zu sagen, außer vielleicht, dass der Rückgabetyp des Vergleiches ein boolean ist. Die Operanden können z.B. Variablen, Zahlen oder boolean-Werte sein.

  • a < b bedeutet „a kleiner b
  • a <= b bedeutet „a kleiner gleich b
  • a > b bedeutet „a größer b
  • a >= b bedeutet „a größer gleich b
  • a == b bedeutet „a gleich b
  • a != b bedeutet „a ungleich b

Boolesche Operatoren

Boolesche Operatoren, auch logische Operatoren genannt, sind da, um boolesche Werte miteinander zu vergleichen. Der Rückgabetyp des Vergleichs ist ebenfalls ein boolean. Auch hier ist Klammerung problemlos möglich.

  • a && b liefert true, wenn sowohl a als auch b true liefert. Wenn bereits a false ergibt, wird b gar nicht erst getestet.
  • a || b liefert true, wenn a oder b oder beide zu true ausgewertet werden. Wenn bereits a true ergibt, wird b gar nicht erst getestet.
  • a ^ b liefert true, wenn entweder a oder b true liefert.
  • !a liefert true, wenn a false ergibt. Falls a true ergibt, liefert !a entsprechend false.

Im folgenden ein Beispiel für die Vergleichsoperatoren und booleschen Operatoren:

a ist true, weil 1<4 und auch !false beide true ergeben. b ist true, denn 3!=3 || (true && (1==2 || true)) entspricht false || (true && (false || true)) und das entspricht false || (true && true) was wiederum false || true entspricht. a^b ergibt false, denn es ist nicht nur einer der Operanden true.

Bit-Operatoren

Java bietet auch einige Bit-Operatoren an, mit deren Hilfe Bits des Wertes von einer Variable verändert werden können. Hat man zum Beispiel zwei int-Variablen, so könnte man mit dem Operator & die Binärwerte dieser Variablen bitweise UND-verknüpfen. Gerade als Anfänger wird man die Bit-Operatoren aber nicht wirklich brauchen, darum gehe ich an dieser Stelle nicht weiter darauf ein.

  • a & b für die bitweise UND-Verknüpfung von a und b
  • a | b für die bitweise ODER-Verknüpfung von a und b
  • a ^ b für die bitweise XOR-Verknüpfung von a und b
  • ~a für die bitweise Negation von a
  • a << b für den Links-Shift von a um b Bits
  • a >> b für den Rechts-Shift von a um b Bits
  • a >>> b für den Rechts-Shift von a um b Bits ohne Vorzeichen

Zuweisungsoperatoren

Um Schreibarbeit zu sparen, gibt es in Java einige Zuweisungsoperatoren. Zum Beispiel sind beim Zuweisungsoperator += die Ausdrücke a+=b; und a=a+b; im Prinzip das Gleiche. Der erste Operand (hier a) ist eine Variable, der zweite Operand (hier b) kann eine Zahl oder Variable sein.

  • a += b; steht für a = a + b;
  • a -= b; steht für a = a – b;
  • a *= b; steht für a = a * b;
  • a /= b; steht für a = a / b;
  • a %= b; steht für a = a % b;
  • a &= b; steht für a = a & b;
  • a |= b; steht für a = a | b;
  • a ^= b; steht für a = a ^ b;
  • a <<= b; steht für a = a << b;
  • a >>= b; steht für a = a >> b;
  • a >>>= b; steht für a = a >>> b;

Weiter zu Teil 5 – Bedingungen

Zur Übersicht von allen Teilen des Tutorials

Vielleicht gefällt dir auch...

3 Antworten

  1. 19. April 2015

    […] Operatoren: Um Rechnen zu können, sind natürlich Operatoren nötig. Um genau diese soll es hier gehen. […]

  2. 19. April 2015

    […] Weiter zu Teil 4 – Operatoren […]

  3. 20. April 2015

    […] diesem Teil wird es um Bedingungen gehen, Schleifen werden dann im nächsten Teil behandelt. Die im letzten Teil vorgestellten booleschen Operatoren und Vergleichsoperatoren sind hier besonders […]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.