homedukeOOP mit Java: Anweisungen Prof. Dr. Uwe Schmidt FH Wedel

Anweisungen

weiter

weiter

Syntax

an C angelehnt
mit einigen Vereinfachungen

Syntaxdefinition mit erweiterter Backus Naur Form


weiter

Blöcke

Syntax:

Block     ::= { { Declaration }
                  { Stmt }
              }

Beispiel:

{
  int xy;
  ...
  {
    int t;
    t = x;
    x = y;
    y = t;
  }
  ...
}

weiter

if Anweisung

Syntax:

IfStmt ::= if ( BooleanExpr )
               Stmt
         [ else
               Stmt ]

Beispiel:

y = 0;
if ( x >= 0 )
  if ( x > 0 )
    y = 1;
  else
    ;
else
  y = -1;
merke
Bedingung vom Typ boolean

weiter

switch Anweisung

Syntax:

SwitchStmt ::= switch ( IntExpr ) {
               { case IntConst :
                     { Stmt }
               }
               [ default :
                     { Stmt }
               ]
               }

Beispiel:

switch ( i ) {
  case 3:
  case 4:
          j = 1;
  case 5:
          j += i;
          break;
  default:
          j = 0;
}

weiter

while und do...while Anweisungen

Syntax:

WhileStmt ::= while ( BooleanExpr )
                Stmt
 
DoStmt    ::= do
                Stmt
              while ( BooleanExpr ) ;

Beispiele:

while ( i != 0 ) {
  --i;
}
 
do {
  --i;
} while ( i >= 0 );

weiter

for Anweisung

Syntax:

ForStmt ::= for ( [ ForInit ] ; [ BooleanExpr ] ; [ ForIncr ] )
            Stmt
         |  for ( TypeName VarName : Expr )
            Stmt
 
ForInit ::= [ Expr { , Expr } ]
         |  Declaration
 
ForIncr ::= Expr { , Expr }

Beispiele:

for ( ;; )
  ;                // kurze Endlosschleife
 
for ( i=0, j=10;
      i < j;
      ++i--j ) { // i und j sind global zur Schleife
  ...
}
 
for ( int i=1, j=10;
      i < j;
      ++i--j ) { // i und j sind lokal zur Schleife
  ...
}
 

Beispiele: Neue Schleife mit Iterator

int [] a = new int [] {0, 1, 2, 3, 5, 8};
int    s = 0;
 
for ( int x : a )
      s += x;

gleichwertig zu

int []   a = new int [] {0, 1, 2, 3, 5, 8};
int      s = 0;
 
Iterator i = a.iterator ();
while ( i.hasNext() ) {
    int x = i.next();
    s += x;
}

Iterator ist eine Schnittstelle, die Methoden für die Traversierung einer Kollektion von Werten definiert.

Iterable ist eine Schnittstelle zur Erzeugung eines Iterator-Objekts, die von vielen Java Typen implementiert wird, insbesondere von Container-Klassen


weiter

break und continue Anweisungen

Syntax:

BreakStmt    ::= break    [ LabelName ] ;
 
ContinueStmt ::= continue [ LabelName ] ;

Beispiele:

switch ( i ) {
  ...
  case 2:
          ...
          break;
  ...
}
// switch end
 
for ( i=0; i < 100; ++i ) {
  ...
  if ( ... )
    break;
  ...
}
// for end
 
for ( i=0; i < 100; ++i ) {
  ...
  if ( ... )
    continue;
  ...
}
// for end
 
b = true;
 
loop0:
for ( int i = 0; i < a.length++i ) {
 
    loop1:
    for ( int j = i + 1; j < a.length++j ) {
 
        if ( a[i] == a[j] ) {
            b = false;
            break
              loop0;
        }
    }
    // loop1 end
}
// loop0 end
merke
keine goto Anweisungen
break mit Marke als Ersatz
merke
Ab Java 1.5 foreach Schleife
weiter

weiter

return Anweisung

Syntax:

ReturnStmt ::= return [ Expr ] ;

Beispiele:

void f() {
  ...
  return;
  ...
}
 
int g(int x) {
  ...
  return x+1;
}

weiter

throw Anweisung

Syntax:

ThrowStmt ::= throw Expr ;

Beispiele:

void f() {
  ...
  throw
    new Exception("Alle Mann von Bord");
  ...
}
merke
Ausführlicher beschrieben im Kapitel über Ausnahmen.

Letzte Änderung: 14.02.2012
© Prof. Dr. Uwe Schmidt
Prof. Dr. Uwe Schmidt FH Wedel