質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

2回答

1503閲覧

Rubyのコードについて。

vowy

総合スコア13

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

1グッド

1クリップ

投稿2016/12/31 11:53

ご協力お願いします。以下のrubyのコードで、エラーではないのですが、gets.chompした後に欲しい値が取れず、そのまま終わってしまいます。なぜなのかご説明お願いします!!

def book_info(book, data) puts book[data] end book = {:title => "end of the world", :genre => "fiction", :year => "1993年"} puts "以下から一つを選んでください 1 title 2 genre 3 year" info = gets.chomp book_info(book, info)
DrqYuto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

表示する情報の指定を数字にしみました。

xx.rb

ruby

1def book_info(book, key) 2 puts book[key] 3end 4 5book = { title: 'end of the world', genre: 'fiction', year: '1993年' } 6 7puts '以下から一つを選んでください' 8book.keys.each_with_index { |key, idx| puts " #{idx + 1} #{key}" } 9puts ' q: 終了' 10 11while (line = gets) 12 break if line.chomp == 'q' 13 num = line.to_i - 1 14 book_info(book, book.keys[num]) if (0..book.keys.count).cover? num 15end

実行例

$ ruby xx.rb 以下から一つを選んでください 1 title 2 genre 3 year q: 終了 1 end of the world 2 fiction 3 1993年 q $

投稿2016/12/31 13:27

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

Ruby

1def book_info(book, data) 2 puts book[data] 3end 4 5book = {:title => "end of the world", :genre => "fiction", :year => "1993年"} 6puts "以下から一つを選んでください 7 1 title 8 2 genre 9 3 year" 10info = gets.chomp 11book_info(book, info.to_sym)

Ruby

1def book_info(book, data) 2 puts book[data.to_sym] 3end 4 5book = {:title => "end of the world", :genre => "fiction", :year => "1993年"} 6puts "以下から一つを選んでください 7 1 title 8 2 genre 9 3 year" 10info = gets.chomp 11book_info(book, info)

これでいけるかと思います。
恐らく、infoがシンボルになっていないからだと私個人は予想します。

参考
rubyのハッシュについて

投稿2016/12/31 12:04

編集2016/12/31 12:18
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

vowy

2016/12/31 12:32

忙しい時間にすいません。なるほど!という感じです。ありがとうございます????
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問