Menu
CoddyTech

Laço aninhado

Parte da seção Fundamentos do Journey de GDScript da Coddy. Lição 49 de 92.

Um loop aninhado é um loop dentro de outro loop. Para cada iteração do loop externo, o loop interno executa todas as suas iterações:

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

O bloco interno está recuado em dois níveis. Ele é executado 3 x 2 = 6 vezes no total.

Os dois loops precisam de nomes de variáveis diferentes. Escrever for i dentro de outro for i é um erro, relatado antes de o programa ser executado.

Loops aninhados são úteis para linhas e colunas. print() sempre termina a linha; portanto, para imprimir uma linha de asteriscos, monte-a primeiro em uma string e imprima-a quando o loop interno terminar:

for row in range(2):
	var line := ""
	for col in range(3):
		line += "*"
	print(line)
***
***

O loop externo é executado uma vez por linha, e o loop interno adiciona uma estrela por coluna. Um break dentro do loop interno interrompe apenas o loop interno: o loop externo continua com sua próxima iteração.

challenge icon

Desafio

Fácil

O programa lê dois números inteiros: rows e cols.

Use loops aninhados para imprimir um retângulo de asteriscos (*) com rows linhas e cols asteriscos em cada linha.

Para as entradas 3 e 4, a saída é:

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

Experimente você mesmo

extends Node

func _ready():
	var rows := int(OS.read_string_from_stdin())
	var cols := int(OS.read_string_from_stdin())
	# Laço externo: uma iteração por linha
	# Laço interno: adiciona uma estrela por coluna
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos

Pratique por conta própria: Compilador de GDScript online