break statement
Вызывает завершение объемлющего цикла for , while или do-while или оператора switch .
Используется, когда неудобно завершать цикл с помощью условного выражения и условных операторов.
Содержание |
Синтаксис
attr-spec-seq
(необязательно)
break
;
|
|||||||||
| attr-spec-seq | - |
(C23)
необязательный список
атрибутов
, применяемых к оператору
break
|
Появляется только внутри
инструкции
тела цикла (
while
,
do-while
,
for
) или внутри
инструкции
оператора
switch
.
Объяснение
После этого оператора управление передаётся оператору или объявлению, следующему непосредственно за охватывающим циклом или оператором switch, как если бы с помощью
goto
.
Ключевые слова
Примечания
Оператор break не может использоваться для выхода из нескольких вложенных циклов. Для этой цели может использоваться
goto
statement
.
Пример
#include <stdio.h> int main(void) { int i = 2; switch (i) { case 1: printf("1"); case 2: printf("2"); // i==2, поэтому выполнение начинается с этой метки case case 3: printf("3"); case 4: case 5: printf("45"); break; // выполнение последующих случаев прерывается case 6: printf("6"); } printf("\n"); // Сравните выводы этих двух вложенных циклов for. 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++) // только этот цикл прерывается оператором break { if (k == 2) break; printf("%d%d ", j,k); } } }
Возможный вывод:
2345 00 01 02 03 04 10 11 12 13 14 00 01 10 11
Ссылки
- Стандарт C17 (ISO/IEC 9899:2018):
-
- 6.8.6.3 Оператор break (стр: 111)
- Стандарт C11 (ISO/IEC 9899:2011):
-
- 6.8.6.3 Оператор break (стр: 153)
- Стандарт C99 (ISO/IEC 9899:1999):
-
- 6.8.6.3 Оператор break (стр: 138)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
-
- 3.6.6.3 Оператор break
Смотрите также
[[
fallthrough
]]
(C23)
|
указывает, что переход к следующей метке case является преднамеренным и не должен диагностироваться компилятором, который предупреждает о таких переходах
(спецификатор атрибута) |
|
Документация C++
для
break
statement
|
|