Rubyの配列を使用した学習をします。
配列が便利ということで、配列を使用して、スクールでおそらくやってない配列を使用した本登録アプリケーションを作ります。
条件
・本の名前を登録
・値段を登録
・booksという配列に、本の名前(title)と値段(price)をいれていく
・登録が済んだら、登録したデータを取り出すメソッドも作成する
・登録、一覧表示を繰り返し表示させられるよう、メソッドを書いていく
今回は擬似コードなしで書いていきます。
books = []
def register(books)
puts "本のタイトルを記載してください"
book_title = gets.chomp
puts "本のタイトルを#{book_title}で登録しました"
puts "販売したい値段を記載してください"
price = gets.to_i
books.each do |book_title, price|
puts "#{book_title}を#{price}円で登録しました"
end
book = [book_title, price]
books << book
end
def book_list(books)
puts "一覧から番号を選んでください"
index = 1
books.each do |book|
puts "#{index}:#{book[0]}"
index += 1
end
input = gets.to_i
show(books[input-1])
end
def show(books)
puts "本のタイトルは#{books[0][0]}"
puts "値段は#{books[0][1]}円"
end
while true do
puts "番号を選択してください"
puts "1:本の登録"
puts "2:本の詳細"
puts "3:終了する"
case gets.to_i
when 1
register(books)
when 2
book_list(books)
when 3
exit
else
"無効な値です"
end
end
今回は登録したものが、そのまま本の詳細として表示される使用になっています。
あれ、しかも、動作確認すると、
番号を選択してください
1:本の登録
2:本の詳細
3:終了する
2
一覧から番号を選んでください
1:qwe
1
本のタイトルはq
値段はw円
になっている。値段どこいったw
ん、これはどうしたものか???
2分くらいで改修できました。
books = []
def register(books)
puts "本のタイトルを記載してください"
book_title = gets.chomp
puts "本のタイトルを#{book_title}で登録しました"
puts "販売したい値段を記載してください"
price = gets.to_i
puts "#{book_title}を#{price}円で登録しました"
book = [book_title, price]
books << book
end
def book_list(books)
puts "一覧から番号を選んでください"
index = 1
books.each do |book|
puts "#{index}:#{book[0]}"
index += 1
end
input = gets.to_i
input = input - 1
puts "本のタイトルは#{books[input][0]}"
puts "値段は#{books[input][1]}円"
puts "--------------------------"
end
while true do
puts "番号を選択してください"
puts "1:本の登録"
puts "2:本の詳細"
puts "3:終了する"
case gets.to_i
when 1
register(books)
when 2
book_list(books)
when 3
exit
else
"無効な値です"
end
end
しょーもない処理をしてしまっていたことに気づいた点
① registerで使ってたeach文いらんやん
② book_listメソッドでまとめて処理できるやん
③ メソッドをまとめたことによってinput変数で繰り返し処理できるやん
④ 動作確認すると、みずらい・・・・横棒いれよう!!
念の為、動作確認
番号を選択してください
1:本の登録
2:本の詳細
3:終了する
1
本のタイトルを記載してください
ビジョナリー・カンパニー
本のタイトルをビジョナリー・カンパニーで登録しました
販売したい値段を記載してください
3800
ビジョナリー・カンパニーを3800円で登録しました
番号を選択してください
1:本の登録
2:本の詳細
3:終了する
1
本のタイトルを記載してください
ビジョナリー・カンパニー飛躍の法則
本のタイトルをビジョナリー・カンパニー飛躍の法則で登録しました
販売したい値段を記載してください
4000
ビジョナリー・カンパニー飛躍の法則を4000円で登録しました
番号を選択してください
1:本の登録
2:本の詳細
3:終了する
2
一覧から番号を選んでください
1:ビジョナリー・カンパニー
2:ビジョナリー・カンパニー飛躍の法則
2
本のタイトルはビジョナリー・カンパニー飛躍の法則
値段は4000円
--------------------------
番号を選択してください
1:本の登録
2:本の詳細
3:終了する
2
一覧から番号を選んでください
1:ビジョナリー・カンパニー
2:ビジョナリー・カンパニー飛躍の法則
1
本のタイトルはビジョナリー・カンパニー
値段は3800円
--------------------------
2つ登録してみました。
動きましたね。
プログラミング楽しいですね。
ちなみに、知らない方いたらなんですが、ビジョナリー・カンパニー飛躍の法則、個人的におすすめ本です。
優良企業がなぜ優良企業なのか? 科学的(統計的)に分析した結果がわかります。
ここは違う、ここはこうしたほうがセンスが良い等々ございましたらご指摘いただけますと幸いです。
最後までみていただき、ありがとうございますm(_ _)m