Вложенный цикл
Часть раздела Основы путешествия по GDScript на Coddy. Урок 49 из 92.
Вложенный цикл — это цикл внутри другого цикла. При каждой итерации внешнего цикла внутренний цикл выполняет все свои итерации:
for i in range(3):
print("Outer: ", i)
for j in range(2):
print(" Inner: ", j)Outer: 0
Inner: 0
Inner: 1
Outer: 1
Inner: 0
Inner: 1
Outer: 2
Inner: 0
Inner: 1Внутренний блок имеет отступ в два уровня. Всего он выполняется 3 x 2 = 6 раз.
Для двух циклов нужны разные имена переменных. Запись for i внутри другого for i — это ошибка, о которой сообщается до запуска программы.
Вложенные циклы полезны для работы со строками и столбцами. print() всегда завершает строку, поэтому, чтобы вывести строку из звёздочек, сначала соберите её в строку, а затем выведите её, когда внутренний цикл завершится:
for row in range(2):
var line := ""
for col in range(3):
line += "*"
print(line)***
***Внешний цикл выполняется один раз для каждой строки, а внутренний цикл добавляет по одной звёздочке в каждый столбец. break внутри внутреннего цикла останавливает только внутренний цикл: внешний цикл продолжает работу со следующей итерации.
Задание
ЛегкоПрограмма считывает два целых числа: rows и cols.
Используй вложенные циклы, чтобы вывести прямоугольник из звёздочек (*) с rows строками и cols звёздочками в каждой строке.
Для входных данных 3 и 4 вывод будет таким:
****
****
****Попробуйте сами
extends Node
func _ready():
var rows := int(OS.read_string_from_stdin())
var cols := int(OS.read_string_from_stdin())
# Внешний цикл: одна итерация для каждой строки
# Внутренний цикл: добавляет по одной звёздочке для каждого столбца
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыЦелочисленное делениеОператор остатка от деленияСокращённая запись арифметических операцийПовторение — простая математикаОператоры сравнения7Основы ввода и вывода
ВыводВывод с переменнымиФорматирование строкВводПреобразование типовПовторение — до 120Повторение — истина или ложь5Операторы, часть 2
Логические операторы, часть 1Логические операторы, часть 2Повторение: простая логикаЛогические операторы, часть 3Тернарный оператор8Калькулятор для разделения счёта
Приветственное сообщениеВвод данных11FizzBuzz с неожиданным поворотом
Обзор игрыФункция FizzBuzz14Массивы: продвинутый уровень
Срезы массивовОператоры последовательностейПринадлежностьСортировка и обратный порядок3Переменные. Часть 2
Объявление типаВывод типаКонстантыПовторение — инициализация переменныхПреобразование типов6Принятие решений
Оператор ifЕсли — иначеПовторение: простой калькуляторВложенные условия if — elseОператор match9Циклы
Цикл forЦикл whileBreakContinueПовторение — факториалФункция rangeВложенный циклПовторение — динамический вводПотренируйтесь самостоятельно: Онлайн-компилятор GDScript