ProgateのRuby学習コースを始めたばかりなのですが
Ⅳのコードで不明点があります。
どなたか教えていただけないでしょうか。
index.rbの一番最後の行
puts "お会計は#{selected_menu.get_total_price(count)}円です"
↑この部分なのですが
なぜ、#{get_total_price(count)}ではなく#{selected_menu.get_total_price(count)}としないといけないのでしょうか。
Ruby
1# index.rb 2 3require "./menu" 4 5menu1 = Menu.new(name: "ピザ", price: 800) 6menu2 = Menu.new(name: "すし", price: 1000) 7menu3 = Menu.new(name: "コーラ", price: 300) 8menu4 = Menu.new(name: "お茶", price: 200) 9 10menus = [menu1, menu2, menu3, menu4] 11 12index = 0 13menus.each do |menu| 14 puts "#{index}. #{menu.info}" 15 index += 1 16end 17 18puts "--------------" 19puts "メニューの番号を選択してください" 20 21# 入力を数値として受け取って変数orderに代入してください 22order = gets.chomp.to_i 23 24# 選択されたメニューのインスタンスを変数selected_menuに代入してください 25selected_menu = menus[order] 26 27# 「選択されたメニュー: ○○」となるように出力してください 28puts "選択されたメニュー: #{selected_menu.name}" 29 30puts "個数を入力してください(3つ以上で100円割引)" 31 32# 入力を数値として受け取って変数countに代入してください 33count = gets.chomp.to_i 34 35# 「お会計は○○円です」となるように出力してください 36puts "お会計は#{selected_menu.get_total_price(count)}円です" 37
Ruby
1# menu.rb 2 3class Menu 4 attr_accessor :name 5 attr_accessor :price 6 7 def initialize(name:, price:) 8 self.name = name 9 self.price = price 10 end 11 12 def info 13 return "#{self.name} #{self.price}円" 14 end 15 16 def get_total_price(count) 17 total_price = self.price * count 18 if count >= 3 19 total_price -= 100 20 end 21 return total_price 22 end 23end 24
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/08 07:52
2020/03/08 08:01
2020/03/08 08:42
2020/03/08 08:48
2020/03/08 09:04 編集