Безусловные переходы

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

С помощью инструкции 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 не вызывается.