Buch hinzufügen
Teil des Abschnitts Logik & Programmfluss der Ruby-Journey von Coddy — Lektion 29 von 56.
Füge die Option 1. Add Book zur Menüschleife hinzu. Wenn der Benutzer sie auswählt, frage nach dem Titel, dem Autor und dem Genre des Buches und füge dann einen neuen Hash in das library Array ein.
Jedes Buch beginnt ungelesen (read: false).
Aufgabe
EinfachErweitere die Menüschleife. Wenn die Auswahl "1" ist:
printdie EingabeaufforderungTitle:und lies den Titel einprintAuthor:und lies den Autor einprintGenre:und lies das Genre ein- Füge einen Hash
{ title:, author:, genre:, read: false }inlibraryein - Gib
Book added!aus
Behalte das Verhalten für 5. Exit aus der vorherigen Lektion bei (gibt Goodbye! aus und bricht ab).
Für die Eingaben 1, The Hobbit, Tolkien, Fantasy, und dann 5, endet die Ausgabe mit:
Choose an option: Title: Author: Genre: Book added!
--- Library Manager ---
...
Choose an option: Goodbye!Spickzettel
Hinzufügen eines Buches zu einem Array unter Verwendung eines Hashs mit push:
print "Title: "
title = gets.chomp
print "Author: "
author = gets.chomp
print "Genre: "
genre = gets.chomp
library.push({ title: title, author: author, genre: genre, read: false })
puts "Book added!"Probier es selbst
library = []
loop do
puts "--- Library Manager ---"
puts "1. Add Book"
puts "2. Search By Title"
puts "3. Filter By Genre"
puts "4. Mark As Read"
puts "5. Exit"
print "Choose an option: "
choice = gets.chomp
if choice == "5"
puts "Goodbye!"
break
end
# TODO: Auswahl == "1" verarbeiten, Titel/Autor/Genre abfragen,
# einen Hash in library pushen, "Book added!" ausgeben
end
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Programmfluss
1Strings im Detail
String-Methoden im ÜberblickString-InterpolationIterieren über StringsSplit und JoinRückblick – String Weaver4Blöcke, Procs & Lambdas
Was ist ein Block?do..end vs. geschweifte KlammernDas yield-SchlüsselwortBlock-ParameterProcs und LambdasZusammenfassung – Eigener Iterator7Hashes Teil 2
Hash.new mit StandardwertenIterieren über HashesVerschachtelte HashesZusammenführen und TransformierenRückblick – Häufigkeitszähler10Projekt - Studentenverwaltung
ProjektübersichtStudent hinzufügen5Enumerable-Kraftpaket
Select und RejectMap-VerkettungReduce / Injectcount, all?, any?, none?group_by und partitionsort_by, min_by, max_byZusammenfassung – Data Pipeline8Fortgeschrittene Entscheidungslogik
Case mit Klassen & RegexMulti-Value whenTernärer OperatorInline if / unlessRückblick – Noten-Klassifizierer32D-Arrays
2D-Array GrundlagenZugriff auf 2D-ElementeIterieren über 2D-ArraysGängige 2D-MusterZusammenfassung – Matrix-Operationen6Projekt - Bibliotheksverwaltung
ProjektübersichtBuch hinzufügen