Инструкция break
Материал из cppreference.com
Вызывает завершение охватывающего цикла for, while или do-while или инструкции switch.
Используется, когда иначе неудобно завершать цикл с использованием условного выражения и условных инструкций.
Синтаксис
посл-спец-атр(необязательно) break ;
|
|||||||||
| посл-спец-атр | — | (C23)необязательный список атрибутов, применяемых к инструкции break
|
Встречается только среди инструкций тела цикла (while, do-while, for) или среди инструкций в switch.
Объяснение
После этой инструкции управление передаётся инструкции или объявлению, расположенных сразу после охватывающего цикла или switch, как если бы выполнялась goto.
Ключевые слова
Замечания
Инструкция break не может использоваться для выхода из нескольких вложенных циклов. Для этой цели можно использовать инструкцию goto.
Пример
Запустить этот код
#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 прекращается
case 6: printf("6");
}
printf("\n");
// Сравниваем выводы этих двух вложенных циклов.
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 | |