Menu
Coddy logo textTech

Métodos de Rango

Parte de la sección Lógica y flujo del Journey de Ruby de Coddy — lección 7 de 56.

Los rangos vienen con métodos prácticos que te ahorran escribir bucles a mano.

include? comprueba si un valor se encuentra dentro del rango:

range = 1..10
puts range.include?(5)   # true
puts range.include?(11)  # false

min, max y size funcionan directamente en rangos:

puts (1..10).min   # 1
puts (1..10).max   # 10
puts (1..10).size  # 10

step itera sobre el rango saltando una cantidad fija, lo cual es útil cuando no quieres todos los valores:

(0..10).step(2) do |n|
  puts n
end
# 0, 2, 4, 6, 8, 10

Y each funciona igual que en los arrays:

(1..3).each { |n| puts n * n }
# 1
# 4
# 9
challenge icon

Desafío

Fácil

Se te proporciona un rango inclusivo y una lista de conjeturas. Califica las conjeturas y resume el rango.

Lee dos líneas:

  1. Dos enteros separados por un espacio: start y end_value
  2. Una lista de conjeturas enteras separadas por comas

Usando el rango start..end_value, imprime:

  1. Hit: <n>, donde n es cuántas conjeturas caen dentro del rango (usa include?)
  2. Span: <n>, donde n es el size del rango
  3. Multiples of 3 sum: <n>, donde n es la suma de cada múltiplo de 3 en el rango (usa step comenzando desde el primer múltiplo de 3 en o después de start)

Para la entrada 1 10 en la primera línea y 3,5,11,7,-2 en la segunda, la salida es:

Hit: 3
Span: 10
Multiples of 3 sum: 18

(Hits: 3, 5, 7. Múltiplos de 3 en 1..10: 3+6+9 = 18.)

Hoja de referencia

Métodos útiles de Range:

range = 1..10
range.include?(5)  # true
range.min          # 1
range.max          # 10
range.size         # 10

step itera saltando por una cantidad fija:

(0..10).step(2) { |n| puts n }
# 0, 2, 4, 6, 8, 10

each funciona igual que en los arrays:

(1..3).each { |n| puts n * n }

Pruébalo tú mismo

start, end_value = gets.chomp.split.map(&:to_i)
guesses = gets.chomp.split(",").map(&:to_i)

# TODO: Conteo de aciertos vía include?, Extensión vía size, suma de los múltiplos de 3 vía step
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo