Оператор break
Принудительно завершает цикл for, range-for, while или do-while, а также оператор switch.
Используется в тех случаях, когда иным способом, используя условные выражения и операторы, сложно завершить цикл.
Синтаксис
attr (необязательно) break ;
|
| attr | - | (с C++11) любое количество атрибутов |
Объяснение
Используется только внутри оператор тела цикла (while, do-while, for) или внутри оператор оператора switch. После этого оператора управление передаётся оператору, следующему сразу за циклом или оператором switch. Как и при любом выходе из блока, все автоматические объекты, объявленные в заключающем составном операторе или в условии цикла/switch, уничтожаются в обратном порядке создания перед выполнением первой строки, следующей за циклом.
Ключевые слова
Примечания
Оператор break не может быть использован для выхода из нескольких вложенных циклов. Для этой цели можно использовать оператор goto.
Пример
#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';
}Возможный вывод:
2345 a0 a1 b0 b1
См. также
[[fallthrough]](C++17) |
указывает, что переход от предыдущей метки case является преднамеренным и не должен диагностироваться компилятором, который предупреждает о переходе (спецификатор атрибута) |
Документация на C для break
|
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/language/break