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.
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.
|
|
1. Zahl: 3 |
|
// 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"; } |