Namensräume
Varianten
Aktionen

break Anweisung

Von cppreference.com
< cpp‎ | Sprache
 
 
C++ Sprache
Allgemeine Themen
Kontrollfluss
Bedingte Ausführungsaussagen
if
Iterationsanweisungen (Schleifen)
for
Bereichs-for (C++11)
Sprunganweisungen
continue - break
Funktionen
Funktionsdeklaration
Lambda-Funktionsausdruck
inline-Spezifizierer
Dynamische Ausnahmespezifikationen (bis C++17*)
noexcept-Spezifizierer (C++11)
Ausnahmen
Namensräume
Typen
Spezifizierer
const/volatile
decltype (C++11)
auto (C++11)
constexpr (C++11)
consteval (C++20)
constinit (C++20)
Speicherdauer-Spezifizierer
Initialisierung
Ausdrücke
Alternative Darstellungen
Literale
Boolesch - Ganzzahl - Gleitkommazahl
Zeichen - String - nullptr (C++11)
Benutzerdefinierte (C++11)
Dienstprogramme
Attribute (C++11)
Typen
typedef-Deklaration
Typalias-Deklaration (C++11)
Umwandlungen
Speicherzuweisung
Klassen
Klassenspezifische Funktionseigenschaften
explicit (C++11)
static

Spezielle Member-Funktionen
Templates
Sonstiges
 
 

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

break

[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

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