プロジェクトの概要
CoddyのRubyジャーニー「ロジックとフロー」セクションの一部 — レッスン 28/56。
あなたは、小さな蔵書管理マネージャーを作成することになります。これは、本の情報を管理し、ユーザーが本の追加、検索、フィルタリング、および既読設定を行えるようにするメニュー駆動型のプログラムです。
各書籍は、以下のキーを持つハッシュです:
{
title: "The Great Gatsby",
author: "F. Scott Fitzgerald",
genre: "Fiction",
read: false
}これらはすべてlibraryという名前の配列に保持し、メニューを表示して選択肢を読み取るloop doから全体を動かします。各レッスンで、メニューにオプションが1つずつ追加されます:
- 1. 本を追加する
- 2. タイトルで検索する
- 3. ジャンルで絞り込む
- 4. 本を既読にする
- 5. 終了する
この最初のレッスンでは、空のライブラリ、メニューループ、および終了オプションをセットアップします。その他のオプションは、後で実装するための空の分岐として開始します。
チャレンジ
初心者空の library 配列を初期化し、以下の処理を行う loop do を開始します:
- メニューを表示する(正確なフォーマットは以下を参照)
gets.chompでユーザーの選択を読み取る- 選択が
"5"の場合、Goodbye!と表示してループを抜ける
メニューは次のように正確に表示される必要があります:
--- Library Manager ---
1. Add Book
2. Search By Title
3. Filter By Genre
4. Mark As Read
5. Exit
Choose an option: Choose an option: プロンプトには print を使用し、カーソルが同じ行に留まるようにしてください。
入力が 5 の場合、出力は以下のようになります:
--- Library Manager ---
1. Add Book
2. Search By Title
3. Filter By Genre
4. Mark As Read
5. Exit
Choose an option: Goodbye!チートシート
各書籍は、library配列に格納されたハッシュです:
library = []
book = {
title: "The Great Gatsby",
author: "F. Scott Fitzgerald",
genre: "Fiction",
read: false
}loop doとbreakを使用して、メニュー駆動型のプログラムを作成します。プロンプトと同じ行にカーソルを保持するには、(putsではなく)printを使用します:
loop do
puts "--- Library Manager ---"
puts "1. Add Book"
puts "5. Exit"
print "Choose an option: "
choice = gets.chomp
if choice == "5"
puts "Goodbye!"
break
end
end自分で試してみよう
# TODO: 空のライブラリ配列を初期化する
# TODO: loop do、メニューを表示、選択を読み取り、"5"で終了する
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。