さて今まで学習したことを使って次の演習をやってみましょう

演習

自動販売機を作ろう!

仕様としましては

商品ラインナップ

  • お茶:120円
  • カルピス:150円
  • エナジードリンク:200円

を表示して商品を選んでもらい、お金を投入

お釣りが必要な場合はお釣りを渡してあげてください

投入された金額が商品の値段より低い場合は「金額が足りない」と促してあげてください

一つだけヒントを

  • ifの中にif文を入れることが出来ます(case文も)
  • case文の中にif文を入れることが出来ます(逆も然り)

とりあえず

選んだ商品と金額、おつりが正しい挙動

であれば良しとします

作成のヒント

手順を載せます

見ないで作れたらあなたの理解度は100%です

  1. ラインナップを表示
  2. ラインナップを選択してもらう(getsが使えそうですね)
  3. 次に金額投入(getsが使えそうですね)
  4. 投入金額が商品金額以上かチェック
  5. 条件分岐してお釣りを計算する
  6. お釣りが必要な場合はお釣りを出してあげる

演習の解答

それでは回答


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です

最後に

解けた人は素晴らしい!

解けなかった人は何も問題ないです

初心者に対して急に問題出されて解けという方がやばいです

今回解けなくてもコードを理解して次に同じ問題が出た時に解ければ大丈夫

大切なのは「理解すること」です

さぁ次は

絶対に挫折しないRuby基礎03

カテゴリー: Ruby

コメントを残す

メールアドレスが公開されることはありません。

Rating

wp-puzzle.com logo