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

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

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

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

Q&A

解決済

3回答

370閲覧

この様なRubyのプログラムを読む場合は どの様にして読めば良いでしょうか?

yuu_777

総合スコア12

Ruby

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

1グッド

1クリップ

投稿2019/04/11 02:12

編集2019/04/11 02:56

プログラミング初心者です。現在Rubyを勉強していまして、文法が増えるごとに読みづらく、理解しにくくなって来ました。
文法をある程度覚え、意味を理解した状態でコードを書くことが大事でしょうか?

Ryby

1class Menu 2 attr_accessor :name 3 attr_accessor :price 4 5 def initialize(name:, price:) 6 self.name = name 7 self.price = price 8 end 9 10 def info 11 return "#{self.name} #{self.price}円" 12 end 13 14 def get_total_price(count) 15 total_price = self.price * count 16 if count >= 3 17 total_price -= 100 18 end 19 return total_price 20 end 21end 22 23menu1 = Menu.new(name: "ピザ", price: 800) 24menu2 = Menu.new(name: "すし", price: 1000) 25menu3 = Menu.new(name: "コーラ", price: 300) 26menu4 = Menu.new(name: "お茶", price: 200) 27 28menus = [menu1, menu2, menu3, menu4] 29 30index = 0 31menus.each do |menu| 32 puts "#{index}. #{menu.info}" 33 index += 1 34end 35 36puts "--------------" 37puts "メニューの番号を選択してください" 38 39 40 41order = gets.chomp.to_i 42 43selected_menu = menus[order] 44 45 46puts "選択されたメニュー: #{selected_menu.name}" 47 48puts "個数を入力してください(3つ以上で100円割引)" 49 50 51 52count = gets.chomp.to_i 53 54 55puts "お会計は#{selected_menu.get_total_price(count)}円です"
DrqYuto👍を押しています

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

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

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

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

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

nskydiving

2019/04/11 02:47

<code>タグを使っていただいていますが、閉じの「```」がありませんので修正をお願いします。 また合わせて「ここに言語を入力」を「ruby」に修正してください。
yuu_777

2019/04/11 02:57

ご指摘ありがとうございます。
guest

回答3

0

たぶん、今回問題になってるあなたが未学習な部分はキーワード引数なのかな?と思います。

キーワード引数については、リンク先を参照してもらうことにしまして、
るりまを調べても見つからない時に取る方法について述べることにします。

Ruby2.1, 2.2, 2.3, 2.4, 2.5, 2.6の追加機能を解説している記事・ブログをそれぞれ見つけて読みます。
というのも、Rubyは年1回しかバージョン番号2桁目の数値を上げるバージョンアップを行わず、
新しい機能が追加されるのはその時に限ります。
そして、追加機能自体も長くても15分もあれば把握できる程度ですので、全部見ても合計1時間~2時間程度でしょうか

なお、2.0はともかく1.9.x以前の記事を読むのはオススメしません。
機能が増えたり減ったりパッチレベルで変化してたこともある時代です。

投稿2019/04/11 22:27

asm

総合スコア15147

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

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

0

文法が増えるごとに読みづらく、理解しにくくなって来ました。

文法という言葉を誤解している可能性があります。
Rubyリファレンス
の、「Ruby言語仕様」の「Ruby の文法」の部分が文法で、これは100%理解しておく必要があります。
ここはRubyのバージョンが上がってもほとんど変わりません。

その次には、「Ruby言語仕様」の他の部分にざっと目を通す。

『「組み込みライブラリ」「標準添付ライブラリ」は、必要になる都度調べる』という方法を学ぶ。つまり、リファレンスの調べ方をマスターする。

あとは、拡張ライブラリに相当するGemsの仕様の調べ方ですが、これはGems添付のドキュメントが簡単な物しか無いケースが増えているので、なかなか難しいです。
一応、コマンドラインで、gem serverと打って、ブラウザでhttp://localhost:8808を開けばドキュメントはあるのですが。

投稿2019/04/11 17:46

otn

総合スコア84423

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

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

yuu_777

2019/04/12 08:39

ご回答有難うございます。 Rubyリファレンスというサイトがあるのですね! ご親切にURLの添付をして頂き有難うございます
otn

2019/04/12 14:26

このリファレンスを丸写しに近いコピーを掲載している個人サイトもあるので、そういうのでなく、本家サイトを見ましょう。 あと、読むのでなく検索する場合は、https://docs.ruby-lang.org/ja/search/ で。
guest

0

ベストアンサー

文法を 100 %を理解する必要はありませんが、基本的なところは押さえておかないとスムーズにコードを書けません。

また、意味を理解せずコードを書いてしまうと、バグが発生したときに修正できなくなってしまいます。

提示していただいたコードぐらいの文法は覚えておいた方が良いでしょう。

投稿2019/04/11 07:14

nskydiving

総合スコア6500

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

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

yuu_777

2019/04/11 07:36

ご回答有難うございます。 基本的なことを学び、 ある程度わかる様になったら、自分で何か作ってみたいと思います(^ ^)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問