Menu
Coddy logo textTech

Range-Methoden

Teil des Abschnitts Logik & Programmfluss der Ruby-Journey von Coddy — Lektion 7 von 56.

Bereiche verfügen über praktische Methoden, die Ihnen das manuelle Schreiben von Schleifen ersparen.

include? prüft, ob ein Wert innerhalb des Bereichs liegt:

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

min, max und size arbeiten direkt mit Bereichen:

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

step iteriert über den Bereich und springt dabei um einen festen Betrag, was nützlich ist, wenn man nicht jeden Wert benötigt:

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

Und each funktioniert genauso wie bei Arrays:

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

Aufgabe

Einfach

Dir wird ein inklusiver Bereich und eine Liste von Schätzungen gegeben. Bewerte die Schätzungen und fasse den Bereich zusammen.

Lies zwei Zeilen ein:

  1. Zwei durch ein Leerzeichen getrennte Ganzzahlen: start und end_value
  2. Eine durch Kommas getrennte Liste von Ganzzahl-Schätzungen

Verwende den Bereich start..end_value und gib Folgendes aus:

  1. Hit: <n>, wobei n die Anzahl der Schätzungen ist, die in den Bereich fallen (verwende include?)
  2. Span: <n>, wobei n die size des Bereichs ist
  3. Multiples of 3 sum: <n>, wobei n die Summe jedes Vielfachen von 3 im Bereich ist (verwende step beginnend beim ersten Vielfachen von 3 bei oder nach start)

Für die Eingabe 1 10 in der ersten Zeile und 3,5,11,7,-2 in der zweiten Zeile lautet die Ausgabe:

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

(Treffer: 3, 5, 7. Vielfache von 3 in 1..10: 3+6+9 = 18.)

Spickzettel

Nützliche Range-Methoden:

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

step iteriert, indem es um einen festen Betrag springt:

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

each funktioniert genau wie bei Arrays:

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

Probier es selbst

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

# TODO: Trefferanzahl via include?, Spanne via size, Summe der Vielfachen von 3 via step
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Programmfluss