Iterador Each
Parte de la sección Fundamentos del Journey de Ruby de Coddy — lección 65 de 88.
Ruby ofrece una forma más elegante de recorrer arreglos que el uso de bucles for o while. El iterador each es la forma preferida en Ruby para procesar cada elemento de una colección.
Aquí está la sintaxis básica:
fruits = ["apple", "banana", "cherry"]
fruits.each do |fruit|
puts fruit
endEsto muestra cada fruta en una línea separada. La variable entre las barras verticales (|fruit|) se llama variable de bloque. Mantiene temporalmente cada elemento a medida que el iterador se desplaza por el arreglo.
Para bloques de una sola línea, puedes usar llaves en lugar de do...end:
numbers = [1, 2, 3]
numbers.each { |n| puts n * 2 }El método each es potente porque puedes realizar cualquier operación en cada elemento. Aquí tienes un ejemplo que calcula un total acumulado:
prices = [10, 25, 15]
total = 0
prices.each do |price|
total += price
end
puts total # Salida: 50A diferencia de los bucles for, la variable de bloque en each permanece contenida dentro del bloque, manteniendo tu código más limpio y menos propenso a comportamientos inesperados.
Desafío
FácilLee una sola línea de entrada que contenga números enteros separados por comas (por ejemplo, 4,7,2,9,5).
Divide la entrada en un arreglo de enteros, luego usa el iterador each para:
- Imprimir cada número multiplicado por 3 en su propia línea
- Calcular la suma de todos los números e imprimirla después del bucle
Usa una variable inicializada en 0 antes del bucle para acumular la suma a medida que iteras a través del arreglo.
Por ejemplo, si la entrada es 4,7,2,9,5, la salida debería ser:
12
21
6
27
15
Sum: 27Si la entrada es 10,20,30, la salida debería ser:
30
60
90
Sum: 60Si la entrada es 1,2,3,4, la salida debería ser:
3
6
9
12
Sum: 10Si la entrada es 5, la salida debería ser:
15
Sum: 5Hoja de referencia
El iterador each es la forma preferida en Ruby para recorrer arrays:
fruits = ["apple", "banana", "cherry"]
fruits.each do |fruit|
puts fruit
endLa variable entre barras verticales (|fruit|) es una variable de bloque que contiene temporalmente cada elemento.
Para bloques de una sola línea, utiliza llaves:
numbers = [1, 2, 3]
numbers.each { |n| puts n * 2 }Puedes realizar operaciones en cada elemento, como calcular un total acumulado:
prices = [10, 25, 15]
total = 0
prices.each do |price|
total += price
end
puts total # Salida: 50Pruébalo tú mismo
# Leer los enteros separados por comas
input = gets.chomp
# Dividir la entrada en un arreglo de enteros
numbers = input.split(",").map(&:to_i)
# Inicializar la variable sum
sum = 0
# TODO: Escribe tu código a continuación
# Usa el iterador each para:
# 1. Imprimir cada número multiplicado por 3
# 2. Sumar cada número a la variable sum
# Imprimir la suma final
puts "Sum: #{sum}"Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 3Operadores lógicos Parte 47Calculadora para dividir la cuenta
Mensaje de bienvenidaObtener la entrada del usuario10FizzBuzz con un giro
Descripción general del juegoEl método FizzBuzz2Variables y tipos de datos
Números y variablesTipo de dato StringTipo de dato BooleanTipo de dato SymbolComprobación de tipos de datosConvenciones de nomenclaturaResumen: Creación de variables5Toma de decisiones
Sentencia IfIf - ElseRepaso - Calculadora simpleIf - Else anidadosSentencia Unless8Bucles
Bucle For con rangosBucle WhileBreakNextRepaso - FactorialBucle TimesBucle UntilBucles anidadosRepaso - Entrada dinámica3Operadores Parte 1
Operadores aritméticosOperador móduloAtajos aritméticosResumen - Matemáticas simplesOperadores de comparación6Entrada y Salida Básica
Salida con putsSalida con print y pSalida con variablesEntrada con getsMétodo chompConversión de tiposResumen - Calculadora de edadResumen - Verdadero o falso