Menu
Coddy logo textTech

Nach Titel suchen

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

Fügen Sie die Option 2. Search By Title hinzu. Der Benutzer gibt einen Suchbegriff ein, und das Programm gibt jedes Buch aus, dessen Titel diesen Begriff enthält (unabhängig von der Groß- und Kleinschreibung).

Hier zahlt sich select aus dem vorherigen Kapitel aus, ein Block, keine manuelle Schleife:

matches = library.select do |book|
  book[:title].downcase.include?(query.downcase)
end
challenge icon

Aufgabe

Einfach

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

  1. Gib mit print die Eingabeaufforderung Search title: aus und lies die Suchanfrage ein
  2. Verwende select, um Bücher zu finden, deren Titel (ohne Beachtung der Groß- und Kleinschreibung) die Suchanfrage enthält
  3. Wenn es keine Treffer gibt, gib No matches. aus
  4. Gib andernfalls für jeden Treffer eine Zeile in diesem Format aus: <title> by <author>

Behalte das Verhalten für 1 (Buch hinzufügen) und 5 (Beenden) aus den vorherigen Lektionen bei.

Für die Eingaben 1, The Hobbit, Tolkien, Fantasy, 2, hobbit und anschließend 5 sieht der entsprechende Ausgabeblock so aus:

Choose an option: Search title: The Hobbit by Tolkien

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!"
  end
  # TODO: handle choice == "2", nach Suchbegriff fragen, passende Bücher auswählen,
  # gebe "No matches." aus oder eine Zeile pro Treffer: "<title> by <author>"
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 & Programmfluss

Übe selbstständig: Online-Ruby-Compiler