break-Anweisung
Von cppreference.com
Beendet die umschließende for-, while- oder do-while-Schleife oder switch-Anweisung.
Wird verwendet, wenn es sonst umständlich ist, die Schleife mithilfe des Bedingungsausdrucks und bedingter Anweisungen zu beenden.
Inhalt |
[bearbeiten] Syntax
attr-spec-seq (optional) break ; |
|||||||||
| attr-spec-seq | - | (C23) optionale Liste von Attributen, die auf die break-Anweisung angewendet werden |
Erscheint nur innerhalb der Anweisung eines Schleifenkörpers (while, do-while, for) oder innerhalb der Anweisung einer switch-Anweisung.
[bearbeiten] Erklärung
Nach dieser Anweisung wird die Kontrolle an die Anweisung oder Deklaration übertragen, die unmittelbar auf die umschließende Schleife oder switch folgt, als ob durch goto.
[bearbeiten] Schlüsselwörter
[bearbeiten] Hinweise
Eine break-Anweisung kann nicht verwendet werden, um aus mehreren verschachtelten Schleifen auszubrechen. Die goto-Anweisung kann für diesen Zweck verwendet werden.
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <stdio.h> int main(void) { int i = 2; switch (i) { case 1: printf("1"); case 2: printf("2"); // i==2, so execution starts at this case label case 3: printf("3"); case 4: case 5: printf("45"); break; // execution of subsequent cases is terminated case 6: printf("6"); } printf("\n"); // Compare outputs from these two nested for loops. for (int j = 0; j < 2; j++) for (int k = 0; k < 5; k++) printf("%d%d ", j,k); printf("\n"); for (int j = 0; j < 2; j++) { for (int k = 0; k < 5; k++) // only this loop is exited by break { if (k == 2) break; printf("%d%d ", j,k); } } }
Mögliche Ausgabe
2345 00 01 02 03 04 10 11 12 13 14 00 01 10 11
[bearbeiten] Referenzen
- C17-Standard (ISO/IEC 9899:2018)
- 6.8.6.3 Die break-Anweisung (S. 111)
- C11-Standard (ISO/IEC 9899:2011)
- 6.8.6.3 Die break-Anweisung (S. 153)
- C99-Standard (ISO/IEC 9899:1999)
- 6.8.6.3 Die break-Anweisung (S. 138)
- C89/C90-Standard (ISO/IEC 9899:1990)
- 3.6.6.3 Die break-Anweisung
[bearbeiten] Siehe auch
[[fallthrough]](C23) |
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-Anweisung | |