Menu
Coddy logo textTech

Métodos de Intervalo

Parte da seção Lógica e Fluxo do Journey de Ruby da Coddy — lição 7 de 56.

Intervalos vêm com métodos úteis que evitam que você escreva loops manualmente.

include? verifica se um valor está dentro do intervalo:

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

min, max e size funcionam diretamente em intervalos:

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

step itera sobre o intervalo saltando por uma quantidade fixa, útil quando você não quer todos os valores:

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

E each funciona exatamente como em arrays:

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

Desafio

Fácil

Você recebe um intervalo inclusivo e uma lista de palpites. Pontue os palpites e resuma o intervalo.

Leia duas linhas:

  1. Dois números inteiros separados por um espaço: start e end_value
  2. Uma lista de palpites inteiros separados por vírgula

Usando o intervalo start..end_value, imprima:

  1. Hit: <n>, onde n é a quantidade de palpites que estão dentro do intervalo (use include?)
  2. Span: <n>, onde n é o size do intervalo
  3. Multiples of 3 sum: <n>, onde n é a soma de cada múltiplo de 3 no intervalo (use step começando do primeiro múltiplo de 3 em ou após start)

Para a entrada 1 10 na primeira linha e 3,5,11,7,-2 na segunda, a saída é:

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

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

Folha de consulta

Métodos úteis de Range:

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

step itera saltando por uma quantidade fixa:

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

each funciona exatamente como em arrays:

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

Experimente você mesmo

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

# TODO: Contagem de acertos via include?, Intervalo via size, soma dos múltiplos de 3 via step
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 Lógica e Fluxo