Оператор break
Материал из cppreference.com
Вызывает прерывание охватывающих циклов for, диапазонный-for, while или do-while или оператора switch.
Используется, когда иначе неудобно завершать цикл, используя выражение условия и условные операторы.
Содержание |
[править] Синтаксис
атрибуты (необязательно) break ;
|
|||||||||
атрибуты | — | (начиная с C++11) любое количество атрибутов |
[править] Объяснение
После этого оператора управление передается оператору, непосредственно следующему за охватывающим циклом или switch. Как и в случае выхода из любого блока видимости, все автоматически хранимые объекты, объявленные в охватывающем составном операторе или в условии цикла/switch, уничтожаются в порядке, обратном построению, перед выполнением первой строки, следующей за охватывающим циклом.
[править] Ключевые слова
[править] Примечание
Оператор break нельзя использовать для выхода из нескольких вложенных циклов. Для этой цели можно использовать оператор goto.
[править] Пример
Запустить этот код
#include <iostream> int main() { int i = 2; switch (i) { case 1: std::cout << "1"; //<---- возможно предупреждение: провал через case 2: std::cout << "2"; //выполнение начинается с этой метки case //(+предупреждение) case 3: std::cout << "3"; //<---- возможно предупреждение: провал через case 4: //<---- возможно предупреждение: провал через 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 по break
|