Loops Aninhados
Parte da seção Fundamentos do Journey de Ruby da Coddy — lição 46 de 88.
Você pode colocar um loop dentro de outro loop para criar um loop aninhado. O loop interno é executado completamente para cada iteração do loop externo, tornando esse padrão útil para trabalhar com grades, tabelas ou combinações.
for i in 1..2
for j in 1..3
puts "i=#{i}, j=#{j}"
end
endIsso exibe seis linhas. Para cada valor de i, o loop interno percorre todos os valores de j.
Primeiro i é 1 enquanto j percorre 1, 2, 3. Então i torna-se 2 e j novamente percorre 1, 2, 3.
Um exemplo prático é criar um padrão de multiplicação simples:
for row in 1..3
for col in 1..3
print "#{row * col} "
end
puts ""
endIsso imprime uma grade 3x3 de produtos. O print mantém os valores na mesma linha, e o puts "" muda para uma nova linha após a conclusão de cada linha. Você também pode misturar diferentes tipos de loop, como um loop times dentro de um loop for.
Desafio
FácilLeia dois números inteiros da entrada:
rows- o número de linhascols- o número de colunas
Use loops aninhados para imprimir um retângulo feito de asteriscos (*) com as dimensões fornecidas. Cada linha deve conter cols asteriscos separados por espaços, e cada linha deve estar em sua própria linha.
Use print para os asteriscos dentro de uma linha e puts para mudar para a próxima linha após cada linha.
Por exemplo, se as entradas forem 3 e 4, a saída deve ser:
* * * *
* * * *
* * * *Se as entradas forem 2 e 5, a saída deve ser:
* * * * *
* * * * *Folha de consulta
Loops aninhados permitem que você coloque um loop dentro de outro. O loop interno é executado completamente para cada iteração do loop externo.
for i in 1..2
for j in 1..3
puts "i=#{i}, j=#{j}"
end
endIsso gera seis linhas no total. Para i=1, j itera através de 1, 2, 3. Então, para i=2, j itera novamente através de 1, 2, 3.
Use print para manter a saída na mesma linha e puts "" para mudar para uma nova linha:
for row in 1..3
for col in 1..3
print "#{row * col} "
end
puts ""
endVocê pode misturar diferentes tipos de loops, como usar um loop times dentro de um loop for.
Experimente você mesmo
# Ler entrada
rows = gets.to_i
cols = gets.to_i
# TODO: Escreva seu código abaixo
# Use loops aninhados para imprimir um retângulo de asteriscos
# Use print para asteriscos dentro de uma linha e puts para mudar para a próxima linhaEsta 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 2
Operadores Lógicos Parte 1Operadores Lógicos Parte 2Recapitulação - Lógica SimplesOperadores Lógicos Parte 3Operadores Lógicos Parte 47Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo Entrada do Usuário10FizzBuzz com um Toque Especial
Visão Geral do JogoO Método FizzBuzz2Variáveis e Tipos de Dados
Números e VariáveisTipo de Dado StringTipo de Dado BooleanTipo de Dado SymbolVerificando Tipos de DadosConvenções de NomenclaturaRecapitulação - Criação de Variáveis5Tomada de Decisão
Instrução IfIf - ElseRecapitulação - Calculadora SimplesIf - Else AninhadoInstrução Unless8Laços de Repetição
Loop For com IntervalosLoop WhileBreakNextRecapitulação - FatorialLoop TimesLoop UntilLoops AninhadosRecapitulação - Entrada Dinâmica3Operadores Parte 1
Operadores AritméticosOperador de MóduloAtalhos AritméticosRecapitulação - Matemática SimplesOperadores de Comparação6IO Básico
Saída com putsSaída com print e pSaída com VariáveisEntrada com getsMétodo chompConversão de TiposRecapitulação - Calculadora de IdadeRecapitulação - Verdadeiro ou Falso9Métodos
Definindo um MétodoParâmetros de MétodoValores de RetornoRecapitulação - Método SigmaRecapitulação - Método de ValidaçãoValores de Parâmetro Padrão15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do Programa