Оператор break (C++)
Оператор break завершает выполнение ближайшего внешнего цикла или условного оператора, в котором он находится. Управление передается оператору, который расположен после оператора, при его наличии.
break;
Заметки
Оператор break используется с условным оператором switch и операторами циклов do, for и while.
В операторе switch оператор break заставляет программу выполнять следующий оператор, находящийся снаружи оператора switch. Без оператора break выполняется каждый оператор из сопоставленной метки case до конца оператора switch, включая предложение default.
В циклах оператор break завершает выполнение ближайшего внешнего оператора do, for или while. Управление передается оператору, который расположен после завершенного оператора, при его наличии.
Если используются вложенные операторы, break завершает выполнение только того оператора do, for, switch или while, который непосредственно его окружает. Передать управление из более глубоко вложенных структур можно при помощи оператора return или goto.
Пример
В следующем коде показан способ использования оператора break в цикле for.
#include <iostream>
using namespace std;
int main()
{
// An example of a standard for loop
for (int i = 1; i < 10; i++)
{
cout << i << '\n';
if (i == 4)
break;
}
// An example of a range-based for loop
int nums []{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
for (int i : nums) {
if (i == 4) {
break;
}
cout << i << '\n';
}
}
В следующем коде показан способ использования оператора break в цикле while и цикле do.
#include <iostream>
using namespace std;
int main() {
int i = 0;
while (i < 10) {
if (i == 4) {
break;
}
cout << i << '\n';
i++;
}
i = 0;
do {
if (i == 4) {
break;
}
cout << i << '\n';
i++;
} while (i < 10);
}
В следующем коде показан способ использования оператора break в операторе switch. Необходимо использовать break всегда, когда необходимо обработать каждый случай по отдельности; если break не используется, выполнение кода продолжится до следующего случая.
#include <iostream>
using namespace std;
enum Suit{ Diamonds, Hearts, Clubs, Spades };
int main() {
Suit hand;
. . .
// Assume that some enum value is set for hand
// In this example, each case is handled separately
switch (hand)
{
case Diamonds:
cout << "got Diamonds \n";
break;
case Hearts:
cout << "got Hearts \n";
break;
case Clubs:
cout << "got Clubs \n";
break;
case Spades:
cout << "got Spades \n";
break;
default:
cout << "didn't get card \n";
}
// In this example, Diamonds and Hearts are handled one way, and
// Clubs, Spades, and the default value are handled another way
switch (hand)
{
case Diamonds:
case Hearts:
cout << "got a red card \n";
break;
case Clubs:
case Spades:
default:
cout << "didn't get a red card \n";
}
}