Безусловные переходы
Бывают ситуации, когда необходимо прекратить выполнение цикла досрочно, опустив выполнение кода, оставшегося в теле цикла и проверку условного выражения.
С помощью инструкции break можно организовать немедленный выход из цикла.
Пример. В консоль выводятся только отрицательные числа в заданном диапазоне
static void Main(string[] args)
{
for (int i = -10; i <= 10; i++)
{
if (i > 0) break; //Завершение цикла при i>0
Console.Write(i + " ");
}
Console.WriteLine(“Готово!”);
Console.ReadKey();
}
Несмотря на то, что цикл for спроектирован для перебора значений i в диапазоне от -10 до 10, инструкция break досрочно прекращает его выполнение, когда значение переменной i становится положительным.
Инструкция continue в отличие от break не прерывает хода выполнения цикла. Она лишь приостанавливает текущую итерацию и переходит к следующей итерации.
Пример. В консоль выводятся нечетные числа в заданном диапазоне. Поверка осуществляется проверкой остатка от деления на 2, для нечетных чисел он равен 1. В цикле перебираются все числа от 1 до 10. Если очередное число четное, то итерация завершается с пропуском последующих инструкций тела цикла и переходом к следующей итерации.
static void Main(string[] args)
{
for ( int i = 10; i > 0; i--)
{
if ( i%2 !=1 ) continue;
Console.WriteLine("{0} - нечетное число", i);
Console.WriteLine("Нажмите любую клавишу");
Console.ReadKey();
}
}
Здесь выводятся только нечетные числа, поскольку при обнаружении четного числа происходит преждевременный переход к следующей итерации и метод WriteLine не вызывается.