Описание тега nested-loops

Логическая структура, используемая в компьютерном программировании, где два или более повторяющихся оператора помещаются во "вложенную" форму (т. Е. Один цикл расположен внутри тела другого). Внутренний цикл полностью повторяется при каждом проходе внешнего цикла.

Вложенный цикл - это структура управления циклом, которая содержит внутри себя (внутренний) цикл, также известный как цикл внутри цикла.

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

Вот пример кода, демонстрирующего вложенный цикл: он перечисляет все пары (x, y), где x колеблется от 0 до 3, а y варьируется от 0 до 2, а также распечатать, когда закончились внешний и внутренний цикл.

int x = 0;
int y = 0;
while (x <= 3) {
    while (y <= 2) {
        printf("(%d, %d)\n", x, y);
        y++;
    }
    printf("Inner Loop finished\n");
    x++;
    y = 0;
}
printf("Outer Loop finished\n");

Этот двойной цикл будет работать следующим образом:

(0, 0)                                                                                                                                                         
(0, 1)                                                                                                                                                         
(0, 2)                                                                                                                                                         
Inner Loop finished                                                                                                                                            
(1, 0)                                                                                                                                                         
(1, 1)                                                                                                                                                         
(1, 2)                                                                                                                                                         
Inner Loop finished                                                                                                                                            
(2, 0)                                                                                                                                                         
(2, 1)                                                                                                                                                         
(2, 2)                                                                                                                                                         
Inner Loop finished                                                                                                                                            
(3, 0)                                                                                                                                                         
(3, 1)                                                                                                                                                         
(3, 2)                                                                                                                                                         
Inner Loop finished                                                                                                                                            
Outer Loop finished