Menu
Coddy logo textTech

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
end

Isso 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: 50

Ao 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.

challenge icon

Desafio

Fácil

Leia 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:

  1. Imprimir cada número multiplicado por 3 em sua própria linha
  2. 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: 27

Se a entrada for 10,20,30, a saída deve ser:

30
60
90
Sum: 60

Se a entrada for 1,2,3,4, a saída deve ser:

3
6
9
12
Sum: 10

Se a entrada for 5, a saída deve ser:

15
Sum: 5

Folha de consulta

O iterador each é a maneira preferida do Ruby para percorrer arrays:

fruits = ["apple", "banana", "cherry"]

fruits.each do |fruit|
  puts fruit
end

A 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: 50

Experimente 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}"
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