Menu
CoddyTech

合計と平均

CoddyのRubyジャーニー「基礎」セクションの一部。レッスン 83/88。

challenge icon

チャレンジ

簡単

「Total & Average」機能を追加して、経費トラッカーを拡張しましょう。

プログラムでは、次の処理を行います。

  1. expensesという名前の空の配列を初期化する
  2. メニューを表示してユーザーの入力を読み取るloop doを作成する
  3. ユーザーが"1"を入力したら、経費の名前と金額を入力するよう促し、:nameと:amountのキーを持つハッシュを作成してexpenses配列に追加し、Expense added!を出力する
  4. ユーザーが"2"を入力したら、これまでと同様にすべての経費を表示する。経費がない場合はNo expenses recorded yet.を出力し、ある場合は空行に続けて--- Your Expenses ---を出力し、その後、各経費をName: $Amountの形式で出力する
  5. ユーザーが"3"を入力したら、すべての経費の合計と平均を計算して表示する。経費がない場合はメッセージを表示する
  6. ユーザーが"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: $X
    Average: $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オンラインコンパイラ