Menu
Coddy logo textTech

プロジェクトの概要

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. 終了する

この最初のレッスンでは、空のライブラリ、メニューループ、および終了オプションをセットアップします。その他のオプションは、後で実装するための空の分岐として開始します。

challenge icon

チャレンジ

初心者

空の library 配列を初期化し、以下の処理を行う loop do を開始します:

  1. メニューを表示する(正確なフォーマットは以下を参照)
  2. gets.chomp でユーザーの選択を読み取る
  3. 選択が "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 dobreakを使用して、メニュー駆動型のプログラムを作成します。プロンプトと同じ行にカーソルを保持するには、(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"で終了する
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン