Урок 6. Вложенные циклы


#1

Как и условные конструкции, циклы также могут быть вложены друг в друга.

Вложенные циклы – это циклы, организованные в теле другого цикла. Вложенный цикл в тело другого цикла, называется внутренним циклом. Цикл, в теле которого существует вложенный цикл, называется внешним.

Полное число исполнений внутреннего цикла, всегда равно произведению числа итераций внутреннего цикла на произведение чисел итераций всех внешних циклов, например, если внешний цикл имеет 5 итераций, а внутренний 10, то общее число итераций внутреннего цикла будет 5 * 10 = 50 итераций.
Пример с вложением одного цикла for в другой цикл for:

for (int i = 0; i < 10; i++)
{
    // Выводим одну строку из 10 звездочек.
    for (int j = 0; j < 10; j++)
    {
        Console.Write("*");
    }

    // Переход на новую строку.
    Console.WriteLine();
}

Примечание: для переменных счётчиков также действуют правила областей видимости, поэтому во вложенном цикле в качестве переменной счётчика нельзя снова создать переменную i – при попытке создания будет ошибка!

Результат работы:

9

Одна из проблем, связанных с вложенными циклами – это организация досрочного выхода из них. Решений у этой проблемы несколько, одна из них – использовать оператор безусловного перехода goto, другим же вариантом будет создание переменной-флажка, значение которой будет обозначать необходимость прервать работу циклов, например:

static void Main()
{
    bool flag = false;

    for (int i = 0; i < 10; i++)
    {
        for (int j = 0; j < 10; j++)
        {
            Console.Write('*');
            if (j == 5 && i == 3)
            {
                flag = true;
                break;
            }
        }

        if (flag == true)
            break;

        Console.WriteLine();
    }

    // Delay.
    Console.ReadKey();
}

Результат:

10

Примечание: вложенными могут быть разные циклы!

Источник: видеоурок Александра Шевчука "ВИДЕОУРОК №6. ЦИКЛИЧЕСКИЕ КОНСТРУКЦИИ".

%D1%81%D1%82%D1%80%D0%B5%D0%BB%D0%BA%D0%B0%20%D0%B2%D0%BB%D0%B5%D0%B2%D0%BE%202 предыдущая статья | следующая статья %D1%81%D1%82%D1%80%D0%B5%D0%BB%D0%BA%D0%B0%20%D0%B2%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%202


Содержание справочника С# Starter
Урок 6. Пропуск итерации цикла