В редких случаях нужно выполнения итерации цикла досрочно прервать и перейти к выполнению следующей итерации. В таких случаях нужно использовать оператор пропуска итерации continue.
Примеры использования оператора пропуска итерации в циклах:
static void Main()
{
int counter = -1;
Console.WriteLine("цикл с предусловием");
while (counter < 4)
{
counter++;
if (counter == 2)
{
continue;
}
Console.WriteLine("Counter = {0}", counter);
}
Console.WriteLine("\nцикл с постусловием");
counter = -1;
do
{
counter++;
if (counter == 2)
{
continue;
}
Console.WriteLine("Counter = {0}", counter);
}
while (counter < 4);
Console.WriteLine("\nцикл со счётчиком");
for (counter = 0; counter < 5; counter++)
{
if (counter == 2)
{
continue;
}
Console.WriteLine("Counter = {0}", counter);
}
// Delay.
Console.ReadKey();
}
Результат:
Примечание: как и оператор break
, так и оператор continue
рекомендуется использовать с условными конструкциями.
Напоминание
Неструктурные средства безусловных переходов: goto
, break
, continue
. С точки зрения структурного программирования, команды досрочного выхода из цикла и продолжения итерации считаются избыточными. Нужно стараться моделировать их действия чисто структурными средствами – условиями и циклами.
Несмотря на свою ограниченную полезность и возможность замены на другие языковые конструкции, команды пропуска итерации и, особенно, досрочного выхода из цикла в отдельных случаях оказываются полезны, именно поэтому они сохраняются в C# и других современных языках программирования.
Источник: видеоурок Александра Шевчука "ВИДЕОУРОК №6. ЦИКЛИЧЕСКИЕ КОНСТРУКЦИИ".