Menu
CoddyTech

Nach Genre filtern

Teil des Abschnitts Logik und Ablauf der Ruby-Journey von Coddy. Lektion 31 von 56.

Füge die Option 3. Filter By Genre hinzu. Der Benutzer gibt ein Genre ein, und das Programm listet jedes Buch in genau diesem Genre auf; diesmal wird zwischen Groß- und Kleinschreibung unterschieden.

Sie werden außerdem eine Anzahl melden und dabei count aus dem vorherigen Kapitel verwenden.

challenge icon

Aufgabe

Einfach

Erweitere die Menüschleife. Wenn die Auswahl "3" lautet:

  1. Gib die Aufforderung print mit Genre: aus und lies sie ein
  2. select Bücher aus, deren :genre exakt der Eingabe entspricht
  3. Gib pro Treffer eine Zeile aus: <title> by <author>
  4. Gib nach der Liste Total: <n> aus, wobei n die Anzahl der Treffer ist (verwende count oder matches.length)

Lass alle vorherigen Zweige unverändert.

Bei Eingaben, die zwei Fantasy-Bücher und ein Sci-Fi-Buch hinzufügen, anschließend nach Fantasy filtern und das Programm beenden, sollte der Filterblock beide Fantasy-Bücher und Total: 2 ausgeben.

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
  elsif choice == "1"
    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!"
  elsif choice == "2"
    print "Search title: "
    query = gets.chomp
    matches = library.select { |b| b[:title].downcase.include?(query.downcase) }
    if matches.empty?
      puts "No matches."
    else
      matches.each { |b| puts "#{b[:title]} by #{b[:author]}" }
    end
  end
  # TODO: Auswahl == "3" verarbeiten, nach Genre fragen,
  # passende Bücher auswählen, jedes ausgeben, dann "Gesamt: <n>"
end
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 und Ablauf

Übe selbstständig: Online-Ruby-Compiler