0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【初心者向け】Rubyで超簡単な本紹介アプリを作ってみる(each.with_index編)

Posted at

#each.with_indexを使って、配列の要素と要素番号を取り出し、表示させる

今まで作ったアプリケーション(1~3)の続きとなります。
1.Rubyで超簡単な本紹介アプリ
https://qiita.com/pontarou194/items/79d581955757e2589b00

2.Rubyで超簡単な本紹介アプリ(カテゴリ指定ver)
https://qiita.com/pontarou194/items/37a9c63fe617e3244e19

3.Rubyで超簡単な本紹介アプリ(日時指定自動表示)
https://qiita.com/pontarou194/items/4a7db6c7d9036cd0c53e

#each.with_indexを使って表示させたい番号を指定できます。

例えば以下のような例です。

categorys = ["小説","ノンフィクション","ビジネス書"]
categorys.each.with_index(1) do |category, number|

このように指定すると、
1:小説
2:ノンフィクション
3:ビジネス書

っといったように表示。仮に、数字を2と指定すると、、、

categorys.each.with_index(2) do |category, number|
  puts "#{number}:#{category}"

下記のように2から始まります。

2:小説
3:ノンフィクション
4:ビジネス書

といった感じで、簡単なeach.with_indexの紹介でした。
要素に番号つけたいとき、便利ですよね。

これを今まで作成してきた、本紹介アプリに当て込みます。
するとこうなります。

#実際にeach.with_indexをコーディングしてみる

puts "本の名前を登録"
    title= gets.chomp
puts "著者を登録"
    author = gets.chomp
puts "本のカテゴリを入力してください"
categorys = ["小説","ノンフィクション","ビジネス書"]

categorys.each.with_index(1) do |category, number|
  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

require "date"
time = DateTime.now
print(time.hour,"時",time.min,"分",time.sec,"秒\n")
puts "以下の通り登録しました"
puts "本の名前は「#{title}」"
puts "著者の名前は「#{author}」"
puts "カテゴリは「#{category}」"

今までと少し変わった点は、

categorys.each.with_index(1) do |category, number|
の上につけていた、
number = 1
という宣言が不要になったという点くらいですね。

each.with_indexで開始したい要素番号を記載すれば、わざわざ宣言する必要もなくなりました。

最後に動作確認だけしておきます。

#動作確認

本の名前を登録
7つの習慣
著者を登録
コビー
本のカテゴリを入力してください
1:小説
2:ノンフィクション
3:ビジネス書
3
13時10分9秒
以下の通り登録しました
本の名前は「7つの習慣」
著者の名前は「コビー」
カテゴリは「ビジネス書」

上記の通りになるかと思います。

以上となります。
間違いや、こういうやり方もあるよねとか、こういうやり方のほうがセンスいいよねとかありましたら、ご指摘いただけますと幸いです。

最後までみてくれてありがとうございます。

0
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?