break
statement
Вызывает завершение объемлющего цикла for , range-for , while или do-while либо оператора switch .
Используется, когда неудобно завершать цикл с помощью условного выражения и условных операторов.
Содержание |
Синтаксис
attr
(необязательно)
break
;
|
|||||||||
| attr | - | (since 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"; // <---- возможно предупреждение: fall through case 2: std::cout << "2"; // выполнение начинается с этой метки case (+предупреждение) case 3: std::cout << "3"; // <---- возможно предупреждение: fall through case 4: // <---- возможно предупреждение: fall through case 5: std::cout << "45"; // break; // выполнение последующих операторов прерывается case 6: std::cout << "6"; } std::cout << '\n'; for (char c = 'a'; c < 'c'; c++) { for (int i = 0; i < 5; i++) // только этот цикл затрагивается break { // if (i == 2) // break; // std::cout << c << i << ' '; // } } std::cout << '\n'; }
Возможный вывод:
2345 a0 a1 b0 b1
Смотрите также
[[
fallthrough
]]
(C++17)
|
указывает, что переход к следующей метке case является преднамеренным и не должен диагностироваться компилятором, который предупреждает о сквозном выполнении
(спецификатор атрибута) |
|
C documentation
для
break
|
|