合計と平均
CoddyのRubyジャーニー「基礎」セクションの一部。レッスン 83/88。
チャレンジ
簡単「Total & Average」機能を追加して、経費トラッカーを拡張しましょう。
プログラムでは、次の処理を行います。
expensesという名前の空の配列を初期化する- メニューを表示してユーザーの入力を読み取る
loop doを作成する - ユーザーが
"1"を入力したら、経費の名前と金額を入力するよう促し、:nameと:amountのキーを持つハッシュを作成してexpenses配列に追加し、Expense added!を出力する - ユーザーが
"2"を入力したら、これまでと同様にすべての経費を表示する。経費がない場合はNo expenses recorded yet.を出力し、ある場合は空行に続けて--- Your Expenses ---を出力し、その後、各経費をName: $Amountの形式で出力する - ユーザーが
"3"を入力したら、すべての経費の合計と平均を計算して表示する。経費がない場合はメッセージを表示する - ユーザーが
"5"を入力したら、Goodbye!を出力してループを終了する
メニューはこれまでとまったく同じように表示します。
--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: オプション"3"が選択された場合:
- 経費がない場合は、
No expenses to calculate.を出力します。 - 経費がある場合は、次の形式で合計と平均を出力します。
Total: $XAverage: $Y
すべての:amountの値を合計して合計額を計算します。合計額を経費の件数で割って平均額を計算します。
たとえば、入力が3、続いて5(経費が空の状態で計算)の場合、出力は次のようになります。
--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: No expenses to calculate.
--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Goodbye!入力が1、Coffee、5.0、1、Lunch、15.0、3、続いて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: Total: $20.0
Average: $10.0
--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Goodbye!自分で試してみよう
# expenses 配列を初期化する
expenses = []
# TODO: 以下にコードを書く
# 次の処理を行うループを作成する:
# - メニューを表示する
# - ユーザーの入力を読み取る
# - 選択肢 1、2、3、5 を処理する
#
# 選択肢 "1" の場合: 名前と金額の入力を求め、ハッシュを作成して expenses に追加する
# 選択肢 "2" の場合: すべての支出を表示し、支出がなければメッセージを表示する
# 選択肢 "3" の場合: 合計と平均を計算して表示し、支出がなければメッセージを表示する
# 選択肢 "5" の場合: "Goodbye!" を出力して終了する基礎のすべてのレッスン
自分で練習してみよう: Rubyオンラインコンパイラ