Menu
Coddy logo textTech

Cercare per titolo

Fa parte della sezione Logica e flusso del percorso Ruby di Coddy. Lezione 30 di 56.

Aggiungi l'opzione 2. Search By Title. L'utente digita un termine di ricerca e il programma stampa tutti i libri il cui titolo contiene quel termine, senza distinzione tra maiuscole e minuscole.

È qui che select del capitolo precedente dà i suoi frutti: un blocco, nessun ciclo manuale:

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

Sfida

Facile

Estendi il ciclo del menu. Quando la scelta è "2":

  1. usa print per mostrare il prompt Search title: e leggi la query
  2. Usa select per trovare i libri il cui titolo (senza distinzione tra maiuscole e minuscole) include la query
  3. Se non ci sono corrispondenze, stampa No matches.
  4. Altrimenti stampa una riga per ogni corrispondenza in questo formato: <title> by <author>

Mantieni i comportamenti di 1 (Add Book) e 5 (Exit) delle lezioni precedenti.

Per gli input 1, The Hobbit, Tolkien, Fantasy, 2, hobbit, poi 5, il blocco corrispondente dell'output è simile a:

Choose an option: Search title: The Hobbit by Tolkien

Provalo tu

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: maneja choice == "2", solicita una consulta y selecciona los libros que coincidan,
  # imprime "No matches." o una línea por cada coincidencia: "<title> by <author>"
end
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Ruby online