Iterador Each
Parte da seção Fundamentos do Journey de Ruby da Coddy — lição 65 de 88.
O Ruby oferece uma maneira mais elegante de percorrer arrays do que usar loops for ou while. O iterador each é a maneira preferida do Ruby para processar cada elemento em uma coleção.
Aqui está a sintaxe básica:
fruits = ["apple", "banana", "cherry"]
fruits.each do |fruit|
puts fruit
endIsso exibe cada fruta em uma linha separada. A variável entre os pipes (|fruit|) é chamada de variável de bloco. Ela armazena temporariamente cada elemento à medida que o iterador percorre o array.
Para blocos de linha única, você pode usar chaves em vez de do...end:
numbers = [1, 2, 3]
numbers.each { |n| puts n * 2 }O método each é poderoso porque você pode realizar qualquer operação em cada elemento. Aqui está um exemplo que calcula um total acumulado:
prices = [10, 25, 15]
total = 0
prices.each do |price|
total += price
end
puts total # Saída: 50Ao contrário dos loops for, a variável de bloco em each permanece contida dentro do bloco, mantendo seu código mais limpo e menos propenso a comportamentos inesperados.
Desafio
FácilLeia uma única linha de entrada contendo números inteiros separados por vírgulas (ex: 4,7,2,9,5).
Divida a entrada em um array de inteiros e, em seguida, use o iterador each para:
- Imprimir cada número multiplicado por 3 em sua própria linha
- Calcular a soma de todos os números e imprimi-la após o loop
Use uma variável inicializada com 0 antes do loop para acumular a soma enquanto você itera pelo array.
Por exemplo, se a entrada for 4,7,2,9,5, a saída deve ser:
12
21
6
27
15
Sum: 27Se a entrada for 10,20,30, a saída deve ser:
30
60
90
Sum: 60Se a entrada for 1,2,3,4, a saída deve ser:
3
6
9
12
Sum: 10Se a entrada for 5, a saída deve ser:
15
Sum: 5Folha de consulta
O iterador each é a maneira preferida do Ruby para percorrer arrays:
fruits = ["apple", "banana", "cherry"]
fruits.each do |fruit|
puts fruit
endA variável entre barras verticais (|fruit|) é uma variável de bloco que armazena temporariamente cada elemento.
Para blocos de uma única linha, use chaves:
numbers = [1, 2, 3]
numbers.each { |n| puts n * 2 }Você pode realizar operações em cada elemento, como calcular um total acumulado:
prices = [10, 25, 15]
total = 0
prices.each do |price|
total += price
end
puts total # Saída: 50Experimente você mesmo
# Leia os números inteiros separados por vírgula
input = gets.chomp
# Divide a entrada em um array de inteiros
numbers = input.split(",").map(&:to_i)
# Inicializa a variável sum
sum = 0
# TODO: Escreva seu código abaixo
# Use o iterador each para:
# 1. Imprimir cada número multiplicado por 3
# 2. Adicionar cada número à variável sum
# Imprime a soma final
puts "Sum: #{sum}"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 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