Menu
CoddyTech

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

Часть раздела Основы путешествия по 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 внутри внутреннего цикла останавливает только внутренний цикл: внешний цикл продолжает работу со следующей итерации.

challenge icon

Задание

Легко

Программа считывает два целых числа: 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())
	# Внешний цикл: одна итерация для каждой строки
	# Внутренний цикл: добавляет по одной звёздочке для каждого столбца
quiz iconПроверьте себя

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

Все уроки раздела Основы

Потренируйтесь самостоятельно: Онлайн-компилятор GDScript