Menu
Coddy logo textTech

Вложенные циклы

Часть раздела Fundamentals путешествия по C на Coddy — урок 43 из 63.

Вложенные циклы — это циклы, размещенные внутри другого цикла. Для каждой итерации внешнего цикла внутренний цикл выполняется полностью.

Создайте внешний цикл, который выполняется 3 раза:

for (int i = 0; i < 3; i++) {
    // Код внешнего цикла здесь
}

Добавьте внутренний цикл, который выполняется 2 раза для каждой итерации внешнего цикла:

for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 3; j++) {
        printf("%d,%d ", i, j);
    }
    printf("\n");
}

Результат будет следующим:

0,0 0,1 0,2 
1,0 1,1 1,2 

Обратите внимание, как внутренний цикл завершает свои итерации, прежде чем внешний цикл перейдет к своей следующей итерации.

challenge icon

Задание

Легко

Создайте программу, которая выводит прямоугольный узор из звездочек (*) на основе количества строк и столбцов, введенных пользователем.

Ваша программа должна:

  1. Считать два целых числа от пользователя: rows и columns.
  2. Использовать вложенные циклы для вывода прямоугольного узора из звездочек, где внешний цикл отвечает за строки, а внутренний — за столбцы.
  3. Выводить символ новой строки после каждой строки.

Например, если на вход подается 3 строки и 4 столбца, вывод должен быть следующим:

**** 
**** 
****

Шпаргалка

Вложенные циклы — это циклы, помещенные внутрь другого цикла. Для каждой итерации внешнего цикла внутренний цикл выполняется полностью.

Базовая структура вложенного цикла:

for (int i = 0; i < outer_limit; i++) {
    for (int j = 0; j < inner_limit; j++) {
        // Код внутреннего цикла
    }
    // Код внешнего цикла
}

Пример с выводом:

for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 3; j++) {
        printf("%d,%d ", i, j);
    }
    printf("\n");
}

Вывод:

0,0 0,1 0,2 
1,0 1,1 1,2

Внутренний цикл завершает все свои итерации до того, как внешний цикл перейдет к следующей итерации.

Попробуйте сами

#include <stdio.h>

int main() {
    int rows, columns;
    scanf("%d", &rows);
    scanf("%d", &columns);
    
    // Напишите здесь свой код для вывода узора
    
    return 0;
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Fundamentals