さて今まで学習したことを使って次の演習をやってみましょう
演習
自動販売機を作ろう!
仕様としましては
商品ラインナップ
- お茶:120円
- カルピス:150円
- エナジードリンク:200円
を表示して商品を選んでもらい、お金を投入
お釣りが必要な場合はお釣りを渡してあげてください
投入された金額が商品の値段より低い場合は「金額が足りない」と促してあげてください
一つだけヒントを
- ifの中にif文を入れることが出来ます(case文も)
- case文の中にif文を入れることが出来ます(逆も然り)
とりあえず
選んだ商品と金額、おつりが正しい挙動
であれば良しとします
作成のヒント
手順を載せます
見ないで作れたらあなたの理解度は100%です
- ラインナップを表示
- ラインナップを選択してもらう(getsが使えそうですね)
- 次に金額投入(getsが使えそうですね)
- 投入金額が商品金額以上かチェック
- 条件分岐してお釣りを計算する
- お釣りが必要な場合はお釣りを出してあげる
演習の解答
それでは回答
puts '商品を選んでください'
puts "お茶:120円\nカルピス:150円\nエナジードリンク:200円"
choice = gets.to_s.chomp
case choice
when 'お茶'
puts "#{choice}ですね\nお金を投入してください"
money = gets.to_i
# お釣りを代入する変数
oturi = money - 120
# 投入金額が足りているかチェック
if money >= 120
# お釣りがあるかどうかチェックする条件分岐
if oturi != 0
puts "ありがとうございます\nお釣りは#{oturi}円になります"
# お釣りが不要な場合
else
puts 'ありがとうございます'
end
# ここまで
# 投入金額が足りない場合
else
puts 'お金が足りません'
end
when 'カルピス'
puts "#{choice}ですね\nお金を投入してください"
money = gets.to_i
oturi = money - 150
if money >= 150
if oturi != 0
puts "ありがとうございます\nお釣りは#{oturi}円になります"
else
puts 'ありがとうございます'
end
else
puts 'お金が足りません'
end
when 'エナジードリンク'
puts "#{choice}ですね\nお金を投入してください"
money = gets.to_i
oturi = money - 200
if money >= 200
if oturi != 0
puts "ありがとうございます\nお釣りは#{oturi}円になります"
else
puts 'ありがとうございます'
end
else
puts 'お金が足りません'
end
else
puts '商品が見つかりません'
end
あくまでも回答の一例です
仕様通りに動く、自分の意図に沿って動いていればOKです
最後に
解けた人は素晴らしい!
解けなかった人は何も問題ないです
初心者に対して急に問題出されて解けという方がやばいです
今回解けなくてもコードを理解して次に同じ問題が出た時に解ければ大丈夫
大切なのは「理解すること」です
さぁ次は