全部清除
本课属于 Coddy Ruby 学习旅程的“基础知识”单元。第 84 课,共 88 课。
挑战
简单在现有的费用追踪器基础上,添加“Clear All”功能。
你的程序应:
- 初始化一个名为
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基础知识中的所有课
自己练习: Ruby 在线编译器