Namensräume
Varianten
Aktionen

break-Anweisung

Von cppreference.com
< c‎ | Sprache

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

break

[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

#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

(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)[bearbeiten]
C++ Dokumentation für break-Anweisung