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: 1O 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.
Desafio
FácilO 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
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
4Operadores - Parte 1
Operadores aritméticosDivisão inteiraOperador móduloAtalhos aritméticosRevisão - Matemática básicaOperadores de comparação7Entrada e Saída Básicas
SaídaSaída com VariáveisFormatação de StringsEntradaConversão de TipoRevisão - Até 120Revisão - Verdadeiro ou Falso10Funções
Declare uma funçãoArgumentosRetornoTipos de retornoRevisão - Função SigmaRevisão - Função de validaçãoValores padrão13Percorrendo Arrays
Percorrendo elementosPercorrendo com índicesPercorrendo strings — Parte 1Percorrendo strings — Parte 216Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do Programa5Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Revisão - Lógica simplesOperadores lógicos Parte 3Operador ternário8Calculadora de Divisão da Conta
Mensagem de Boas-vindasObtendo Dados de Entrada11FizzBuzz com uma Reviravolta
Visão Geral do JogoA Função FizzBuzz3Variáveis - Parte 2
Declaração de tipoInferência de tipoConstantesRevisão - Inicialização de variáveisConversão de tipo6Tomada de decisões
Instrução ifIf - ElseRevisão - Calculadora simplesIf - Else aninhadoInstrução match9Laços de repetição
Laço forLaço whileInterromperContinuarRevisão - FatorialA função rangeLaço aninhadoRevisão - Entrada dinâmicaPratique por conta própria: Compilador de GDScript online