0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【初心者向け】超簡単ドリンク注文アプリケーション(ドリンクに値段をつけるver)

Last updated at Posted at 2020-01-13

超簡単ドリンク注文アプリケーションに値段をつけてみる

こちらは前回の続きです。
前回のアプリケーションはこちら
https://qiita.com/pontarou194/items/708452b47464bfcad122

条件
 ・実行時、どのようなドリンクがあるかを表示させる
 ・ドリンクには番号をつける
 ・選ばれた番号と同じドリンク名を表示させる
 ・ドリンクに値段をつける
 ・ドリンクの注文数を訪ねて、入力された値に対して合計額を表示させる

擬似コード


def 
お茶が選ばれた場合値段を表示
注文数を入力
合計額を表示
end

def 
コーヒーが選ばれた場合値段を表示
注文数を入力
合計額を表示
end

def 
ビールが選ばれた場合値段を表示
注文数を入力
合計額を表示
end

def
サイダーが選ばれた場合値段を表示
注文数を入力
合計額を表示
end

# それぞれのドリンクメニューの値段を残す
otya = 100
coffee = 200
beer = 300
saida = 400

# ここから先、変数をつけたの以外は前回と一緒なので、そのまま記述します
  puts "何を飲みたいですか?"
    drink_menu = ["お茶","コーヒー","ビール","三ツ矢サイダー"]
    drink_menu.each.with_index(1) do |drink_name, number|
      puts "#{number}:#{drink_name}"
    end

  case gets.to_i
    when 1
      otya(otya)
    when 2
      coffee(coffee)
    when 3
      beer(beer)
    when 4
      saida(saida)
    else
      puts "無効な入力値です"
    end

実際にコーディングしてみる

def otya(otya)
  puts "あなたが選んだのはお茶"
  puts "お茶の値段は100円です"
  puts "いくつ注文しますか?"
  order_quantity = gets.to_i
  total_price = order_quantity * otya
  puts "合計#{total_price}円です"
end

def coffee(coffee)
  puts "あなたが選んだのはコーヒー"
  puts "コーヒーの値段は200円です"
  puts "いくつ注文しますか?"
  order_quantity = gets.to_i
  total_price = order_quantity * coffee
  puts "合計#{total_price}円です"

end

def beer(beer)
  puts "あなたが選んだのはビール"
  puts "ビールの値段は300円です"
  puts "いくつ注文しますか?"
  order_quantity = gets.to_i
  total_price = order_quantity * beer
  puts "合計#{total_price}円です"
end

def saida(saida)
  puts "あなたが選んだのは三ツ矢サイダー"
  puts "サイダーの値段は300円です"
  puts "いくつ注文しますか?"
  order_quantity = gets.to_i
  total_price = order_quantity * saida
  puts "合計#{total_price}円です"
end

otya = 100
coffee = 200
beer = 300
saida = 400

  puts "何を飲みたいですか?"
    drink_menu = ["お茶","コーヒー","ビール","三ツ矢サイダー"]
    drink_menu.each.with_index(1) do |drink_name, number|
      puts "#{number}:#{drink_name}"
    end

  case gets.to_i
    when 1
      otya(otya)
    when 2
      coffee(coffee)
    when 3
      beer(beer)
    when 4
      saida(saida)
    else
      puts "無効な入力値です"
    end

変数及び、引数の勉強になるかと思って使ってみました。
otya(otya)が呼び出された際に、otya(otya)メソッドに飛んで、otya(otya)メソッドではotyaの値段を参照しているため、
otyaの値段と入力された数をかけた合計額が表示される。

動作確認

何を飲みたいですか?
1:お茶
2:コーヒー
3:ビール
4:三ツ矢サイダー
3
あなたが選んだのはビール
ビールの値段は300円です
いくつ注文しますか?
4
合計1200円です

今回は以上となります。
引数便利ですよね。

ここは違う、このようにしたほうがセンスが良い等ございましたら、ご指摘いただけますと幸いです。

最後までみていただきありがとうございます。

@scivola さんからアドバイス頂いた、リファクタリングverを下記に記述しました。
https://qiita.com/pontarou194/items/c7e35b6eed6fce78e999

0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?