X Tutup
The Wayback Machine - https://web.archive.org/web/20221103184733/https://ru.cppreference.com/w/cpp/language/break
Пространства имён
Варианты
Действия

Оператор break

Материал из cppreference.com
< cpp‎ | language
 
 
 
Инструкции
Метки
метка : оператор
Операторы выражений
выражение ;
Составные операторы
{ оператор... }
Операторы выбора
if
switch
Операторы итерирования
while
do-while
for
диапазонный for(C++11)
Операторы переходов
break
continue
return
goto
Операторы объявления
объявление ;
Блоки try
try составной-оператор последовательность-обработчиков
Транзакционная память
synchronized, atomic_commit, и т.д. (ТС TM)
 

Вызывает прерывание охватывающих циклов for, диапазонный-for, while или do-while или оператора switch.

Используется, когда иначе неудобно завершать цикл, используя выражение условия и условные операторы.

Содержание

[править] Синтаксис

атрибуты(необязательно) break ;

[править] Объяснение

После этого оператора управление передается оператору, непосредственно следующему за охватывающим циклом или switch. Как и в случае выхода из любого блока видимости, все автоматически хранимые объекты, объявленные в охватывающем составном операторе или в условии цикла/switch, уничтожаются в порядке, обратном построению, перед выполнением первой строки, следующей за охватывающим циклом.

[править] Ключевые слова

break

[править] Примечание

Оператор 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 (int j = 0; j < 2; j++) {
        for (int k = 0; k < 5; k++) {    //только этот цикл зависит от break
            if (k == 2) break;           //
            std::cout << j << k << ' ';  //
        }
    }
}

Возможный вывод:

2345
00 01 10 11

[править] Смотрите также

[[fallthrough]](C++17) указывает, что провал с предыдущей метки case является преднамеренным и не должен диагностироваться компилятором, который предупреждает о провале
X Tutup