Menu
Coddy logo textTech

전체 삭제

Coddy Ruby 여정의 기초 섹션에 포함된 레슨 — 88개 중 84번째.

challenge icon

챌린지

쉬움

"Clear All" 기능을 추가하여 지출 추적기(expense tracker)를 개선해 보세요.

프로그램은 다음을 수행해야 합니다:

  1. expenses라는 빈 배열을 초기화합니다.
  2. 메뉴를 표시하고 사용자 입력을 읽는 loop do를 생성합니다.
  3. 사용자가 "1"을 입력하면, 지출 이름과 금액을 묻고, :name:amount 키를 가진 해시를 생성하여 expenses 배열에 추가한 뒤 Expense added!를 출력합니다.
  4. 사용자가 "2"를 입력하면, 모든 지출 내역을 표시하거나 내역이 없는 경우 메시지를 표시합니다.
  5. 사용자가 "3"을 입력하면, 모든 지출의 합계와 평균을 계산하여 표시하거나 내역이 없는 경우 메시지를 표시합니다.
  6. 사용자가 "4"를 입력하면, 배열에서 모든 지출을 삭제하고 확인 메시지를 출력합니다.
  7. 사용자가 "5"를 입력하면, Goodbye!를 출력하고 루프를 종료합니다.

메뉴는 이전과 동일하게 표시되어야 합니다:


--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: 

옵션 "4"가 선택되면, expenses 배열에 clear 메서드를 사용하고 All expenses cleared!를 출력하세요.

예를 들어, 입력값이 1, Coffee, 5.0, 4, 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: All expenses cleared!

--- 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, Lunch, 12.0, 1, Dinner, 25.0, 3, 4, 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: $37.0
Average: $18.5

--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: All expenses cleared!

--- 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!

직접 해보기

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
    expense = { name: name, amount: amount }
    expenses << expense
    puts "Expense added!"
  elsif choice == "2"
    if expenses.empty?
      puts "No expenses recorded."
    else
      expenses.each do |expense|
        puts "#{expense[:name]}: $#{expense[:amount]}"
      end
    end
  elsif choice == "3"
    if expenses.empty?
      puts "No expenses to calculate."
    else
      total = 0
      expenses.each do |expense|
        total += expense[:amount]
      end
      average = total / expenses.length
      puts "Total: $#{total}"
      puts "Average: $#{average}"
    end
  elsif choice == "5"
    puts "Goodbye!"
    break
  end
  
  puts ""
end

기초의 모든 레슨