break statement
Veranlasst den umschließenden for -, while - oder do-while -Loop oder die switch-Anweisung zur Beendigung.
Wird verwendet, wenn es anderweitig umständlich wäre, die Schleife mithilfe des Bedingungsausdrucks und bedingter Anweisungen zu beenden.
Inhaltsverzeichnis |
Syntax
attr-spec-seq
(optional)
break
;
|
|||||||||
| attr-spec-seq | - |
(C23)
optionale Liste von
Attributen
, angewendet auf die
break
-Anweisung
|
Erscheint nur innerhalb der
Anweisung
eines Schleifenkörpers (
while
,
do-while
,
for
) oder innerhalb der
Anweisung
eines
switch
.
Erklärung
Nach dieser Anweisung wird die Steuerung an die Anweisung oder Deklaration unmittelbar nach der umschließenden Schleife oder
switch
-Anweisung übertragen, als ob durch
goto
.
Schlüsselwörter
Hinweise
Eine break-Anweisung kann nicht verwendet werden, um aus mehreren verschachtelten Schleifen auszubrechen. Die
goto
-Anweisung
kann für diesen Zweck verwendet werden.
Beispiel
#include <stdio.h> int main(void) { int i = 2; switch (i) { case 1: printf("1"); case 2: printf("2"); // i==2, daher beginnt die Ausführung bei diesem Fall-Label case 3: printf("3"); case 4: case 5: printf("45"); break; // Ausführung der nachfolgenden Fälle wird beendet case 6: printf("6"); } printf("\n"); // Vergleichen Sie die Ausgaben dieser beiden geschachtelten for-Schleifen. 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++) // nur diese Schleife wird durch break verlassen { 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
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
Siehe auch
[[
fallthrough
]]
(C23)
|
zeigt an, dass das Fallthrough vom vorherigen Case-Label beabsichtigt ist und nicht von einem Compiler diagnostiziert werden sollte, der vor Fallthrough warnt
(Attribut-Spezifizierer) |
|
C++-Dokumentation
für
break
-Anweisung
|
|