Namespaces
Variants

break statement

From cppreference.net

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

break

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

(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