전체 삭제
Coddy Ruby 여정의 기초 섹션에 포함된 레슨 — 88개 중 84번째.
챌린지
쉬움"Clear All" 기능을 추가하여 지출 추적기(expense tracker)를 개선해 보세요.
프로그램은 다음을 수행해야 합니다:
expenses라는 빈 배열을 초기화합니다.- 메뉴를 표시하고 사용자 입력을 읽는
loop do를 생성합니다. - 사용자가
"1"을 입력하면, 지출 이름과 금액을 묻고,:name과:amount키를 가진 해시를 생성하여expenses배열에 추가한 뒤Expense added!를 출력합니다. - 사용자가
"2"를 입력하면, 모든 지출 내역을 표시하거나 내역이 없는 경우 메시지를 표시합니다. - 사용자가
"3"을 입력하면, 모든 지출의 합계와 평균을 계산하여 표시하거나 내역이 없는 경우 메시지를 표시합니다. - 사용자가
"4"를 입력하면, 배열에서 모든 지출을 삭제하고 확인 메시지를 출력합니다. - 사용자가
"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