break
break немедленно выходит из цикла или блока switch — удобно для досрочного завершения перебора или чтобы не «провалиться» в следующий case.
Полная статья
Описание
break позволяет досрочно выйти из цикла for, while или do...while, не дожидаясь, пока условие завершения станет ложным. Кроме того, break обязательно используется внутри switch...case, чтобы остановить выполнение после подходящей ветки и не «провалиться» в следующие варианты.
Когда программа встречает break, она немедленно покидает текущий цикл или блок switch и продолжает выполнение со следующей строки после закрывающей фигурной скобки. Если циклы вложены друг в друга, break прерывает только тот цикл, внутри которого он находится, — внешний цикл продолжает работать.
Где применяется
- Поиск в массиве — нашли нужный элемент, дальше перебирать нет смысла.
- Ожидание события — цикл крутится в ожидании показания датчика, и как только оно превысило порог, работа цикла прекращается.
- Меню на
switch— после обработки выбранного пунктаbreakне даёт коду «упасть» в следующую веткуcase. - Аварийный выход — если в процессе итерации обнаружена ошибка или критическое состояние,
breakпозволяет немедленно покинуть цикл и обработать ситуацию.
Пример кода
В следующем примере цикл читает значения датчика и прерывается, как только показание превышает пороговое значение.
int threshold = 40;
for (int x = 0; x < 255; x++) {
analogWrite(PWMpin, x);
sens = analogRead(sensorPin);
if (sens > threshold) { // выйти при срабатывании датчика
x = 0;
break;
}
delay(50);
}
Практические замечания
breakпрерывает только ближайший охватывающий цикл илиswitch. Для выхода из нескольких вложенных уровней сразу потребуется дополнительная логика (например, флаговая переменная).- Внутри
switchотсутствиеbreakв конце веткиcase— распространённая ошибка: выполнение «проваливается» в следующийcase, что почти всегда нежелательно. - Если
breakстоит внутри циклаfor, счётчик цикла не получит финального значения — он остановится на том, на котором был в момент прерывания. Учитывайте это, если используете переменную-счётчик после цикла. - Злоупотреблять
breakне стоит: если условие выхода можно аккуратно выразить в заголовке цикла, код будет читаться лучше. Но для реакции на внешние события или нестандартные ситуацииbreak— вполне нормальный инструмент.