Rubyで簡単な本の紹介アプリを作成。今回はeach do とif文を使って、categoryを指定して作ってみた。
条件
・本の名前が登録できる
・著者が登録できる
・カテゴリ一覧を表示させる
・カテゴリには番号をつける
・カテゴリが登録できる
・最後に本の名前、著者名、カテゴリを一覧表示させる
擬似コードを考える
puts "本の名前を登録"
title= 名前を取得
puts "著者を登録"
author = 著者名を取得
puts "本のカテゴリを入力してください"
categorys = 配列を使ってカテゴリ一覧を作る
カテゴリ名の横に数字をつける
each do を使ってカテゴリを表示させる
category = カテゴリ番号を取得
もし1と入力されたら、○○と表示させる
もし2と入力されたら、○○と表示させる
もし3と入力されたら、○○と表示させる
もし1,2,3のどれでもなかったら、その他と表示させる
puts "以下の通り登録しました"
puts "本の名前は○○"
puts "著者の名前は○○"
puts "カテゴリは○○"
実際にコードを書いていく
puts "本の名前を登録"
title= gets.chomp
puts "著者を登録"
author = gets.chomp
puts "本のカテゴリを入力してください"
categorys = ["小説","ノンフィクション","ビジネス書"]
number = 1
categorys.each do |category|
puts "#{number}:#{category}"
number += 1
end
category = gets.chomp
if category == "1" then
category = "小説"
elsif
category == "2" then
category = "ノンフィクション"
elsif
category == "3" then
category = "ビジネス書"
else
category = "その他"
end
puts "以下の通り登録しました"
puts "本の名前は「#{title}」"
puts "著者の名前は「#{author}」"
puts "カテゴリは「#{category}」"
動作確認
本の名前を登録
宇宙の歴史
著者を登録
宇宙太郎
本のカテゴリを入力してください
1:小説
2:ノンフィクション
3:ビジネス書
2
以下の通り登録しました
本の名前は「宇宙の歴史」
著者の名前は「宇宙太郎」
カテゴリは「ノンフィクション」
上記のような感じで出来ていたら面白いかも。
ポイント
・categorysの中にカテゴリを複数用意
・categoryをeach doで複数表示させる
・categoryの横には数字をつけたいので、putsにnumberをつける
・数値は0からだと違和感があると思ったので1から表示させるようにした(number = 1とした)
・もし1を選択された場合、小説と表示したかったため、if文で1を小説に変換した。
・カテゴリ一覧以外が入力された場合はその他と表示させた
以上です。
ちょっと思ったのが、if文使わなくても1を小説に2をノンフィクションと変換して表示させることって出来るのかも?
間違い、もっと良い書き方等ございましたら教えていただけますと幸いです。
最後までみてくれてありがとう。