break Anweisung
Beendet die umschließende for, range-for, while oder do-while Schleife oder switch-Anweisung.
Wird verwendet, wenn es sonst umständlich ist, die Schleife mittels der Bedingung und bedingten Anweisungen zu beenden.
Inhalt |
[bearbeiten] Syntax
attr (optional) break ; |
|||||||||
| attr | - | (seit C++11) eine beliebige Anzahl von Attributen |
[bearbeiten] Erläuterung
Erscheint nur innerhalb der Anweisung eines Schleifenkörpers (while, do-while, for) oder innerhalb der Anweisung eines switch. Nach dieser Anweisung wird die Kontrolle an die Anweisung übertragen, die unmittelbar auf die umschließende Schleife oder den umschließenden Switch folgt. Wie bei jedem Blockaustritt werden alle automatischen Speicherobjekte, die in einem umschließenden zusammengesetzten Statement oder in der Bedingung einer Schleife/eines Switches deklariert wurden, in umgekehrter Reihenfolge ihrer Konstruktion zerstört, bevor die erste Zeile nach der umschließenden Schleife ausgeführt wird.
[bearbeiten] Hinweise
Eine break-Anweisung kann nicht verwendet werden, um aus mehreren verschachtelten Schleifen auszubrechen. Die goto-Anweisung kann zu diesem Zweck verwendet werden.
[bearbeiten] Schlüsselwörter
[bearbeiten] Beispiel
#include <iostream> int main() { int i = 2; switch (i) { case 1: std::cout << "1"; // <---- maybe warning: fall through case 2: std::cout << "2"; // execution starts at this case label (+warning) case 3: std::cout << "3"; // <---- maybe warning: fall through case 4: // <---- maybe warning: fall through case 5: std::cout << "45"; // break; // execution of subsequent statements is terminated case 6: std::cout << "6"; } std::cout << '\n'; for (char c = 'a'; c < 'c'; c++) { for (int i = 0; i < 5; i++) // only this loop is affected by break { // if (i == 2) // break; // std::cout << c << i << ' '; // } } std::cout << '\n'; }
Mögliche Ausgabe
2345 a0 a1 b0 b1
[bearbeiten] Siehe auch
[[fallthrough]](C++17) |
zeigt an, dass der Fall-Through vom vorherigen Case-Label beabsichtigt ist und von einem Compiler, der Fall-Through warnt, nicht diagnostiziert werden sollte (Attributspezifizierer) |
| C-Dokumentation für break
| |