Содержание
Операторы управления break, continue, return в C# изменяют поведение программы и могут использоваться в условных операторах, операторе выбора или циклах. С одним из этих операторов мы уже знакомились, когда рассматривали оператор выбора switch. В этой части мы рассмотрим этот и другие операторы управления более детально.
Операторы управления break, continue, return в C#
Оператор break
Оператор breakиспользуется для прерывания цикла, либо для завершения работы оператора switchНаглядно, работу этого оператора можно представить в виде следующей схемы:

Для примера, показан цикл while, хотя может использоваться любой другой цикл C#. Как только в теле цикла встречается оператор break, то выполнение программы переходит за пределы цикла. Таким образом, оператор breakнеобходимо использовать в тех случаях, если вам необходимо в какой-то момент времени прервать работу цикла, но, при этом, продолжить выполнение программы.
Например, нам необходимо перечислять все символы строки, которую введет пользователь, пока не встретится символ “!”.
Решить такую задачу нам поможет цикл foreachв котором используется оператор break:
string data = Console.ReadLine();
foreach (char ch in data)
{
if (ch =='!')
{
Console.WriteLine("Цикл прерван");
break;
}
Console.WriteLine(ch);
}
Console.WriteLine("Работа программы окончена");
Как только в строке встретится символ “!” работа цикла будет прервана. Если же символ не будет встречен в строке, то цикл выполнится полностью. Результаты работы программы при разных вариантах показана ниже
| Цикл прерывается | Цикл выполняется полностью |
![]() |
![]() |
Оператор continue
Оператор continueпрерывает очередную итерацию цикла. То есть, в отличие от предыдущего оператора, этот не останавливает полностью цикл, а просто пропускает весь код, расположенный за оператором. На схеме работа оператора continueможет быть представлена следующим образом:

Например, перефразируем предыдущую задачу следующим образом: необходимо перечислять все символы строки, которую введет пользователь, кроме символа “!”
В этой задаче не указывается на то, что работа цикла должна быть прервана при встрече стоп-символа – цикл должен продолжаться и дойти до конца, но, при этом, все стоп-символы должны пропускаться. Решение задачи в таком контексте может выглядеть следующим образом:
string data = Console.ReadLine();
foreach (char ch in data)
{
if (ch == '!')
continue; //пропускаем этот символ
Console.WriteLine(ch);
}
Console.WriteLine("Работа программы окончена");
Console.ReadKey();
Результат работы программы:
Не лишним будет также сказать, что на начальном этапе работы с оператором continueв циклах, следует быть максимально осторожными, так как неверное его использование может привести к созданию бесконечного цикла. Например, рассмотрим следующий код:
int i = 0;
while (i < 10)
{
Console.WriteLine("Цикл работает");
if (i == 2)
continue;
Console.WriteLine(i);
i++;
}
Здесь мы пытаемся вывести в консоль все цифры от 0 до 10, кроме 2. На каждой итерации цикла в консоль выводится строка “Цикл работает” и очередная цифра. На деле же вы увидите бесконечный цикл:

Обратите внимание на то, что счётчик цикла (переменная i) наращивается на 1 после оператора continue. Поэтому, как только i становится равно 2, начинает постоянно выполняться вот этот блок кода:
Console.WriteLine("Цикл работает");
if (i == 2)
continue;
что, в свою очередь, приводит к тому, что переменная i будет равна 2 бесконечно (пока программа не будет закрыта). Одним из вариантов решения такой проблемы может быть следующий – счётчик цикла должен наращиваться до его проверки и выполнения оператора continue
int i = -1;
while (i < 10)
{
Console.WriteLine("Цикл работает");
i++;
if (i == 2)
continue;
Console.WriteLine(i);
}

Оператор return
Оператор returnполностью прерывает работу метода. Про работу с этим оператором мы ещё поговорим более подробно в части про методы C#, а сейчас мы только покажем его работу, в случае его использования внутри цикла. Схема работы оператора return

Например, рассмотрим следующий код:
int i = -1;
while (i < 10)
{
Console.WriteLine("Цикл работает");
i++;
if (i == 2)
return;
Console.WriteLine(i);
}
Console.WriteLine("Работа цикла окончена");
Так как мы использовали внутри цикла оператор return, то мы никогда не увидим в консоли строку “Работа цикла окончена” так как этот оператор полностью завершит выполнение метода.
Подведем итог
Операторы break, continue, returnв C# могут использоваться для управления циклами. Оператор breakпрерывает выполнение цикла, continue– прерывает очередную итерацию цикла, а returnполностью прерывает работу метода.
Домашнее задание №13
Пользователь вводит с клавиатуры целые числа, а программа выводит в консоль сумму всех введенных чисел до тех пор, пока не будет введено число 0. Для получения числа из консоли используйте инструкцию Convert.ToInt32(str), которая преобразует переменную str типа string в целое число.

