next up previous contents index
Nächste Seite: Ausnahmen Aufwärts: Programmieren in Java Vorherige Seite: Grundsymbole, Operatoren und Ausdrücke   Inhalt   Index

Unterabschnitte

Anweisungen

Java bietet drei Formen von Anweisungen






Mit geschweiften Klammern { und } werden Anweisungen zu Blöcken gruppiert. Diese können überall anstelle von einzelnen Anweisungen verwendet werden.



Dieses Kapitel beschäftigt sich mit den Steuerungsanweisungen.

Verzweigung

Die Formen


   if (boolean_expression)
      statement

und


   if (boolean_expression)
      statement_1
   else
      statement_2

Bei geschachtelten if-Anweisungen wird ein else dem jeweils letzten else-losen if zugeordnet.



Fallunterscheidung

Die switch-Anweisung wertet einen ganzzahligen Ausdruck aus und verzweigt abhängig von dessen Wert zu einer markierten Anweisung.



Beispiel:




   switch (Verbosity)
   { case NORMAL:
        System.out.println(summaryState);
        // Weiter in der Anweisungsfolge
     case VERBOSE:
        System.out.println(basicState);
        break;
        // Raus aus dem Switch
     default:
        throw new UnexpectedVerbException
                (Verbosity);
   }

Wichtig:



while- und do-Schleifen

Die Formen


   while (boolean_expression)
      statement

und


   do statement
   while (boolean_expression)



Wichtig:



for-Schleife

Form:


   for (init_expr; boolean_expr; incr_expr)
      statement

entspricht in der Wirkung der while-Schleife:


   init_expr;
   while (boolean_expr)
   {  statement
      incr_expr;
   }

mit dem Unterschied, daß incr_expr immer ausgeführt wird, wenn während der Ausführung von statement eine continue-Anweisung (siehe Seite [*]) ausgeführt wird.

Abbruch-Anweisungen: break, continue, return

Die Abbruch-Anweisungen break und continue können Label als Argumente benutzen, die die Aufsetzpunkte angeben.

Zur Spezifikation solcher Aufsetzpunkte gibt es markierte Anweisungen


   label: statement

Die break-Anweisung

Zwei Formen:


   break

und


   break identifier



Das break ohne Label verläßt die umgebende while-, do-, for- oder switch-Anweisung. Existiert die nicht, gibt es einen Übersetzerfehler.



Das break mit Label verläßt die mit dem Label markierte umgebende Anweisung (z.B. auch einen Block). Existiert die nicht, gibt es einen Übersetzerfehler.

Beispiel:




class Breaktry
{ private float [][] Matrix;
  boolean find(float val)
  { boolean found = false;
    int x, y;
    search:
    for (y = 0; y < Matrix.length; y++)
      for (x = 0; 
           x < Matrix[y].length; 
           x++)
        if (Matrix[y][x] == val)
          { found = true;
            break search;
          }
    if (!found)
      return false;
    // mach irgendwas mit Matrix[x][y]
    return true;
  }
}


Die continue-Anweisung

Darf nur in Schleifen auftreten. Beendet die aktuelle Iteration und fährt mit der Auswertung der Schleifenbedingung fort.



continue mit Label beendet die aktuelle Iteration der markierten Schleife.

continue ohne Label beendet die aktuelle Iteration der direkt umgebenden Schleife.



Beispiel:




   while (! stream.eof())
   { token = stream.next();
     if (token.equals("skip"))
        continue;
     // Verarbeite token
   }


Die return-Anweisung

Beendet die Ausführung einer Methode und kehrt zum Aufrufer zurück.

Liefert die Methode kein Ergebnis, ist die Form


    return;



Liefert die Methode ein Ergebnis, ist die Form


    return expression;

wobei expression einen Typ haben muß, der an den Typ des Methodenergebnisses zugewiesen werden kann.



Besonderheit:

return kann auch zum Verlassen von Konstruktoren und Initialisierungsblöcken verwendet werden.


next up previous contents index
Nächste Seite: Ausnahmen Aufwärts: Programmieren in Java Vorherige Seite: Grundsymbole, Operatoren und Ausdrücke   Inhalt   Index
Peter Pfahler, 1997