全ての支出を表示
CoddyのRubyジャーニー「基礎」セクションの一部 — レッスン 82/88。
チャレンジ
簡単「View Expenses(経費を表示)」機能を追加して、経費トラッカーをさらに構築しましょう。
プログラムは以下の動作を行う必要があります:
expensesという名前の空の配列を初期化する- メニューを表示し、ユーザーの入力を読み取る
loop doを作成する - ユーザーが
"1"を入力したとき、経費の名前と金額をプロンプトで求め、:nameと:amountキーを持つハッシュを作成し、それをexpenses配列に追加して、Expense added!と出力する - ユーザーが
"2"を入力したとき、すべての経費を表示するか、経費が存在しない場合はメッセージを表示する - ユーザーが
"5"を入力したとき、Goodbye!と出力してループを終了する
メニューは以前とまったく同じように表示される必要があります:
--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: オプション "2" が選択されたとき:
- 経費がない場合は、次のように出力します:
No expenses recorded yet. - 経費がある場合は、まず空行を出力し、次に
--- Your Expenses ---を出力してから、各経費をName: $Amountの形式で出力します。
例えば、入力が 2、次に 5(空の状態で表示)の場合、出力は以下のようになります:
--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: No expenses recorded yet.
--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Goodbye!入力が 1, Coffee, 4.5, 1, Lunch, 12.0, 2, そして 5 の場合、出力は以下のようになります:
--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Expense name: Amount: Expense added!
--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Expense name: Amount: Expense added!
--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option:
--- Your Expenses ---
Coffee: $4.5
Lunch: $12.0
--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Goodbye!自分で試してみよう
expenses = []
loop do
puts "--- Expense Tracker ---"
puts "1. Add Expense"
puts "2. View Expenses"
puts "3. Total & Average"
puts "4. Clear All"
puts "5. Exit"
print "Choose an option: "
choice = gets.chomp
if choice == "1"
print "Expense name: "
name = gets.chomp
print "Amount: "
amount = gets.chomp.to_f
expenses.push({name: name, amount: amount})
puts "Expense added!"
puts ""
elsif choice == "5"
puts "Goodbye!"
break
end
end