Bereichsmethoden
Teil des Abschnitts Logik und Ablauf 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) # falsemin, max und size arbeiten direkt mit Bereichen:
puts (1..10).min # 1
puts (1..10).max # 10
puts (1..10).size # 10step 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, 10Und each funktioniert genauso wie bei Arrays:
(1..3).each { |n| puts n * n }
# 1
# 4
# 9Aufgabe
EinfachDir wird ein inklusiver Bereich und eine Liste von Schätzungen gegeben. Bewerte die Schätzungen und fasse den Bereich zusammen.
Lies zwei Zeilen ein:
- Zwei durch ein Leerzeichen getrennte Ganzzahlen:
startundend_value - Eine durch Kommas getrennte Liste von Ganzzahl-Schätzungen
Verwende den Bereich start..end_value und gib Folgendes aus:
Hit: <n>, wobeindie Anzahl der Schätzungen ist, die in den Bereich fallen (verwendeinclude?)Span: <n>, wobeindiesizedes Bereichs istMultiples of 3 sum: <n>, wobeindie Summe jedes Vielfachen von 3 im Bereich ist (verwendestepbeginnend beim ersten Vielfachen von 3 bei oder nachstart)
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.)
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
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik und Ablauf
1Strings im Detail
Überblick über String-MethodenString-InterpolationStrings durchlaufenSplitten und VerbindenRückblick – String Weaver4Blocks, Procs & Lambdas
Was ist ein Block?do..end vs. geschweifte KlammernDas Schlüsselwort yieldBlock-ParameterProcs und LambdasRückblick – Benutzerdefinierter Iterator2Bereiche
Was ist ein Bereich?BereichsmethodenBereiche in Case / WhenWiederholung – Übung zu Bereichen5Das Enumerable-Kraftpaket
Select und RejectMap verkettenReduce / Injectcount, all?, any?, none?group_by und partitionsort_by, min_by, max_byZusammenfassung – Datenpipeline8Fortgeschrittene Entscheidungsfindung
Case mit Klassen & Regexwhen mit mehreren WertenTernärer OperatorInline-if / unlessRückblick – NotenklassifiziererÜbe selbstständig: Online-Ruby-Compiler