Zum Menü springen.

Aufgabe 5-7

(Übungsblatt 5)

Sind folgende Java-Anweisungen syntaktisch korrekt (mit den Variablen a und b deklariert mit Typ int)? Begründen Sie Ihre Antwort.

  1. a + 1 = b;
  2. boolean y = true - false;
  3. b = 1 & 2;
  4. int a = 'A';
  5. byte x = (byte)280;
  6. boolean z = (false == (10 >= 20));

Lösungsvorschlag

zu den Teilaufgaben:

  1. nicht korrekt: a + 1 ergibt einen Wert; auf der linken Seite einer Zuweisung (=) sind jedoch nur Variablen erlaubt
  2. nicht korrekt: der Subtraktions-Operator - kann nicht auf den Typ boolean angewandt werden
  3. korrekt: der „vollständige“ (Bit-weise) Und-Operator kann auf alle primitiven Typen angewandt werden (b erhält hier den Wert 3)
  4. nicht korrekt: laut Aufgabenstellung ist bereits eine Variable a deklariert, Variablen müssen aber (nur) genau einmal deklariert werden
    (Anmerkung: wäre noch keine andere Variable a deklariert, würde diese Anweisung so korrekt sein und a den Wert 65 zuweisen)
  5. korrekt: obwohl der Wert 280 außerhalb des Wertebereichs des Typs byte liegt, ist diese Anweisung aufgrund des ausdrücklichen Type-Casts (byte) korrekt (x erhält hier den Wert 24 wegen des Bereichsüberlaufs)
  6. korrekt: Deklarierung und Initialisierung von z mit einem booleschen Wert, der Ausdruck (10 >= 20) ergibt false, (false == false) ergibt true

Anmerkung. Bei Problemen dieser Art ist das „Code Pad“ in BlueJ äußerst hilfreich. Siehe Unterlagen.

Arne Johannessen, 28. November 2007