Java-Grundlagen: Zuweisungsoperatoren in Java

In Java werden Variablen mittels Zuweisungsoperatoren Werte zugewiesen. Der wichtigste Zuweisungsoperator ist die „Einfache Wertzuweisung“, bspw. a = b.

Es sind neben dem obengenannten Operator noch 11 weitere Zuweisungsoperatoren in Java implementiert. Durch Zuweisungsoperatoren wird jeweils ein Ausdruck ausgewertet und das Ergebnis als Rückgabewert der linksstehenden Variable zugewiesen.

plhq_teaser_hbox_gelb_fotolia_RA Studio_46292813

Unser großes
Android Online-Kurs
Gesamtpaket



Weitere Infos

Folgende Operatoren können mit der Zuweisung in Java kombiniert werden:

Die folgende Tabelle stellt die Zuweisungsoperatoren von Java einzeln vor:

Operator Bezeichnung Beispiel Beschreibung
= Einfache Zuweisung a = b Es wird a der Wert von b zugewiesen und b als Rückgabewert geliefert.
+= Additionszuweisung a += b Es wird a das Ergebnis aus a + b zugewiesen
und a + b als Rückgabewert geliefert.
-= Subtraktionszuweisung a -= b Es wird a das Ergebnis aus a – b zugewiesen
und a – b als Rückgabewert geliefert.
*= Multiplikationszuweisung a *= b Es wird a das Ergebnis aus a * b zugewiesen
und a * b als Rückgabewert geliefert.
/= Divisionszuweisung a /= b Es wird a das Ergebnis aus a / b zugewiesen
und a / b als Rückgabewert geliefert.
%= Modulozuweisung a %= b Es wird a das Ergebnis aus a % b zugewiesen
und a % b als Rückgabewert geliefert.
&= Und-Zuweisung a &= b Es wird a das Ergebnis aus a & b zugewiesen
und a & b als Rückgabewert geliefert.
|= Oder-Zuweisung a |= b Es wird a das Ergebnis aus a | b zugewiesen
und a | b als Rückgabewert geliefert.
^= Exklusiv-Oder-Zuweisung a ^= b Es wird a das Ergebnis aus a ^ b zugewiesen
und a ^ b als Rückgabewert geliefert.
<<= Linksschiebe-Zuweisung a <<= b Es wird a das Ergebnis aus a << b zugewiesen
und a << b als Rückgabewert geliefert.
>>= Rechtsschiebe-Zuweisung a >>= b Es wird a das Ergebnis aus a >> b zugewiesen
und a >> b als Rückgabewert geliefert.
>>>= Rechtsschiebe-Zuweisung
ohne Vorzeichen
a >>>= b Es wird a das Ergebnis aus a >>> b zugewiesen
und a >>> b als Rückgabewert geliefert.

Die Zuweisungsoperatoren dürfen nicht mit den relationalen Operatoren verwechselt werden. So ist bspw. a = b nicht das Gleiche wie a == b.

Glücklicherweise kann eine Verwechslung dieser beiden Operatoren nicht mehr so leicht erfolgen, da als Kontrollausdruck in Schleifen oder Verzweigungen nur Operanden vom boolean-Datentyp verwendet werden dürfen.

Somit ist if(zahl1 = zahl2) nicht erlaubt, der Java-Compiler erwartet hier stattdessen if(zahl1 == zahl2).

In dem folgenden Beispielprogramm werden die Zuweisungsoperatoren verwendet.

Beispiel Zuweisungsoperatoren in Java.

/*
* Beispielanwendung ZuweisungsOperatoren in Java.
*/

public class ZuweisungsOperatoren{
 public static void main(String[] args) {
 
  int a = 260, b = 4, c = -260;

  System.out.println("\na = " + a);
  System.out.println("b = " + b);
  System.out.println("c = " + c);

  a = b;
  System.out.println("\nEinfache Zuweisung:       a = b ergibt " + a);

  a = 260;
  a += b;
  System.out.println("\nAdditionszuweisung:       a += b ergibt " + a);

  a = 260;
  a -= b;
  System.out.println("\nSubtraktionszuweisung:    a -= b ergibt " + a);

  a = 260;
  a *= b;
  System.out.println("\nMultiplikationszuweisung: a *= b ergibt " + a);

  a = 260;
  a /= b;
  System.out.println("\nDivisionszuweisung:       a /= b ergibt " + a);

  a = 260;
  a %= b;
  System.out.println("\nModulozuweisung:          a %= b ergibt " + a);

  a = 260;
  binaerDarstellenVonInt("\n\na binaer  = ", a);
  binaerDarstellenVonInt("b binaer  = ", b);
  a &= b;
  binaerDarstellenVonInt("a &= b    = ", a);
  System.out.println("\nUnd-Zuweisung:            a &= b ergibt " + a);

  a = 260;
  binaerDarstellenVonInt("\n\na binaer  = ", a);
  binaerDarstellenVonInt("b binaer  = ", b);
  a |= b;
  binaerDarstellenVonInt("a |= b    = ", a);
  System.out.println("\nOder-Zuweisung:           a |= b ergibt " + a);

  a = 260;
  binaerDarstellenVonInt("\n\na binaer  = ", a);
  binaerDarstellenVonInt("b binaer  = ", b);
  a ^= b;
  binaerDarstellenVonInt("a ^= b    = ", a);
  System.out.println("\nExklusiv-Oder-Zuweisung:  a ^= b ergibt " + a);

  a = 260;
  binaerDarstellenVonInt("\n\na binaer  = ", a);
  a <<= b;
  binaerDarstellenVonInt("a <<= b   = ", a);
  System.out.println("\nLinksschiebe-Zuweisung:  a <<= b ergibt " + a);

  binaerDarstellenVonInt("\n\nc binaer  = ", c);
  c <<= b;
  binaerDarstellenVonInt("c <<= b   = ", c);
  System.out.println("\nLinksschiebe-Zuweisung:  c <<= b ergibt " + c);

  a = 260;
  binaerDarstellenVonInt("\n\na binaer  = ", a);
  a >>= b;
  binaerDarstellenVonInt("a >>= b   = ", a);
  System.out.println("\nRechtsschiebe-Zuweisung:  a >>= b ergibt " + a);

  a = 260;
  binaerDarstellenVonInt("\n\na binaer  = ", a);
  a >>>= b;
  binaerDarstellenVonInt("a >>>= b  = ", a);
  System.out.println("\nRechtsschiebe-Zuweisung:  a >>>= b ergibt " + a);
  System.out.println("ohne Vorzeichen (Nullexpansion)");

  c = -260;
  binaerDarstellenVonInt("\n\nc binaer  = ", c);
  c >>= b;
  binaerDarstellenVonInt("c >>= b   = ", c);
  System.out.println("\nRechtsschiebe-Zuweisung:  c >>= b ergibt " + c);

  c = -260;
  binaerDarstellenVonInt("\n\nc binaer  = ", c);
  c >>>= b;
  binaerDarstellenVonInt("c >>>= b  = ", c);
  System.out.println("\nRechtsschiebe-Zuweisung:  c >>>= b ergibt " + c);
  System.out.println("ohne Vorzeichen (Nullexpansion)");

 }

 public static void binaerDarstellenVonInt (String text, int zahl) {
  
  int maske = 0b00000000000000000000000000000001;
  char[] bitfolge = new char[32];

  for (int i = 0; i < 32; i++) 
  {
   bitfolge[31 - i] = (zahl & maske) == 0 ? '0' : '1';
   maske = maske << 1;
  }

  System.out.print(text);
  System.out.println(bitfolge);
 }
}

Die zugehörige Textausgabe ist in der unten abgebildeten Kommandozeilenausgabe dargestellt.

Besondere Beachtung sollte man auf die Rechtsschiebe-Zuweisungen mit und ohne Vorzeichen legen. Durch die Rechtsschiebe-Zuweisung ohne Vorzeichen (Nullexpansion) wird aus einer negativen Zahl eine positive Zahl.

Dies könnte zu einem schwerwiegenden Anwendungsfehler führen, wenn der Programmierer dies nicht berücksichtigt bzw. beabsichtigt hat.

Java Zuweisungsoperatoren Beispiel

Java Zuweisungsoperatoren – Ausgabe der Beispielanwendung


Comments 3

  1. Pingback: Operatoren, Ausdrücke und Anweisungen in Java -

  2. Pingback: Java-Grundlagen: Besondere Operatoren in Java

  3. Pingback: Java-Grundlagen: Ausdrücke, die kleinsten ausführbaren Einheiten in Java

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.