next up previous contents
Next: goto-Anweisung, Labels Up: Kontrollstrukturen Previous: for-Schleifen

break und continue

Aus einer einzigen nicht verschachtelten Ebene einer mittels for oder while gebildeten Schleife kann man durch die Benutzung von break herausspringen. Die Schleifenbearbeitung wird abgebrochen und das Programm direkt nach der Schleife fortgesetzt, ohne noch weitere Kontrollanweisungen oder Schleifentests zu beachten. Das break kann also z.B. dazu dienen, Schleifen frühzeitig abzubrechen oder ``Endlosschleifen'' zu verlassen.

  // copy input to output
  while( true ) {
    char c; 
    cin >> c;
    if ( cin.fail() ) break;   // end of input or something wrong
    cout << c;
  }

Die continue Anweisung bewirkt, daß die Bearbeitung des Schleifenkörpers an dieser Stelle abgebrochen und dann je nach Art der Schleife bei der Kontrollanweisung (for(;;)), bzw. dem Schleifentest ((do{}) while()) wieder aufgenommen wird.

  #include <cmath>              // for sqrt() function

  double a[20];
  // ...
  double sum_sqrt=0.;
  for( int i=0; i < 20; i++ ){
    if ( a[i] < 0. ) continue;   // work on next element
    sum_sqrt += sqrt( a[i] );
  }

Es sei nochmals betont, daß sich continue und break nur auf die innerste Schleifenebene beziehen und nicht dazu benutzt werden können, tiefer verschachtelte Schleifen zu verlassen.



© R.Hilfer et al., ICA-1, Univ. Stuttgart
28.6.2002