C++ Kurs

break und continue

Die Themen:

break Anweisung
continue Anweisung
Beispiel

break Anweisung

Die break-Anweisung darf nur innerhalb einer for- oder while-Schleife oder in einem case-Zweig der switch-Verzweigung stehen. Sie bewirkt das sofortige Verlassen der aktuellen Schleife oder des case-Blocks. Sind mehrere Schleifen verschachtelt, so wird nur die aktuelle Schleife abgebrochen, der Ablauf der äußeren Schleifen wird nicht beeinflusst.


int main ()
{
   char inp;
   ...
   // Endlos-Schleife
   for (;;)
   {
      ...
      // Ein Auswahlnenü ausgeben
      cout << "Auswahl? ";
      // Antwort einlesen
      cin >> inp;
      if (inp == 'E')      // Falls Auswahl E
         break;            // Schleife verlassen
      ...
   }
   ...
}

Im Beispiel wird die prinzipielle Bearbeitung eines Menüs innerhalb einer Endlos-Schleife dargestellt. Nach der (nicht dargestellten) Ausgabe des Menüs wird die Auswahl eingelesen. Wird als Auswahl der Buchstabe 'E' eingegeben, wird die Endlos-Schleife für die Menü-Bearbeitung beendet und die danach folgenden Anweisungen ausgeführt.

continue Anweisung

Die continue-Anweisung ist nur innerhalb einer for- oder while-Schleife erlaubt. Sie bewirkt, dass die restlichen, der continue-Anweisung folgenden Anweisungen, übersprungen werden. Die Schleife selbst wird aber nicht verlassen. Bei einer for-Schleife wird nach der continue Anweisung mit der Auswertung des letzten Ausdrucks in der for-Klammer (Aktion pro Schleifendurchlauf) fortgefahren.


int main ()
{
   ...
   for (int index=0; index<10; index++)
   {
      ...
      if (index == 5)  // Falls index 5
         continue;     // Rest der Schleife überspringen
      ...              // Weitere Anweisung wenn index ungleich 5
   }
   ...
}

Im Beispiel wird der Rest der Schleife übersprungen wenn der Schleifenzähler index gleich 5 ist.

Beispiel

Beispiel:

Das Programm berechnet aus einer unbestimmten Anzahl von einzugebenden Zahlen den Mittelwert. Das Einlesen der Zahlen erfolgt in einer Endlos-Schleife.

Werden negative Werte eingegeben, so wird die Eingabe ignoriert und eine Meldung ausgegeben.

Bei Eingabe des Wertes 0 wird die Endlos-Schleife verlassen und der Mittelwert aller Eingaben berechnet.

1. Zahl: 3
2. Zahl: 4
3. Zahl: -4
Keine negativen Zahlen erlaubt!
3. Zahl: 6
4. Zahl: 7
5. Zahl: 0
Mittelwert der Zahlen: 5   


// Beispiel zu break und continue

// Zuerst Dateien iostream und iomanip einbinden

#include <iostream>
#include <fstream>
using std::cout;
using std::endl;
using std::cin;

// main() Funktion
int main ()
{
   // Variablen definieren und initialisieren
   int eingabe;
   int summe = 0;
   int zaehler = 1;

   // Endlos-Schleife für das Einlesen der Werte
   while(true)
   {
      // Zahl einlesen
      cout << zaehler << ". Zahl: ";
      cin >> eingabe;
      // Falls Eingabe 0 war, Schleife verlassen
      if (eingabe == 0)
         break;
      // Falls Eingabe negativ, Eingabe ignorieren
      if (eingabe < 0)
      {
         cout << "Keine negativen Zahlen erlaubt!\n";
         continue;
      }
      // Sonst Summe und Zähler erhöhen
      summe += eingabe;
      zaehler++;
   }

   // Zähler korrigieren da um 1 zu hoch
   zaehler--;
   // Nun Mittelwert berechnen
   if (zaehler != 0)
   {
      cout << "Mittelwert der Zahlen: ";
      cout << static_cast<double>(summe)/static_cast<double>(zaehler) << endl;
   }
   else
      cout << "Keine Werte eingegeben!\n";
}