总额和平均值
本课属于 Coddy Swift 学习旅程的“基础知识”单元。第 81 课,共 86 课。
挑战
简单在上一课中,你实现了“查看所有支出”功能。现在,为选项 "3" 实现“显示总额和平均值”功能。
修改代码以处理选项 "3":
- 用户输入
"3"时,检查expenses数组是否为空 - 如果数组为空,打印
No expenses to calculate. - 如果数组中有支出,计算并显示:
- 所有支出的总额,格式为
Total: $X.X - 支出的平均值,格式为
Average: $X.X
- 所有支出的总额,格式为
- 选项
"4"仍应打印Coming soon... - 选项
"1"、"2"和"5"应继续像之前一样正常工作
提示:使用 reduce(0, +) 计算总额,并除以 Double(expenses.count) 来计算平均值。
预期行为:
- 没有支出时输入
"3",打印No expenses to calculate. - 有支出时输入
"3",总额打印在一行,平均值打印在下一行
交互示例:
1. Add expense
2. View all expenses
3. Show total and average
4. Clear all expenses
5. Exit
3
No expenses to calculate.
1. Add expense
2. View all expenses
3. Show total and average
4. Clear all expenses
5. Exit
1
Enter expense amount:
20.0
Expense added!
1. Add expense
2. View all expenses
3. Show total and average
4. Clear all expenses
5. Exit
1
Enter expense amount:
30.0
Expense added!
1. Add expense
2. View all expenses
3. Show total and average
4. Clear all expenses
5. Exit
3
Total: $50.0
Average: $25.0
1. Add expense
2. View all expenses
3. Show total and average
4. Clear all expenses
5. Exit
5
Goodbye!亲手试试
// Daily Expense Tracker - Menu Display
var expenses: [Double] = []
while true {
// TODO: Write your code below to print the menu options
// Each option should be on its own line with the format: "number. option text"
print("1. Add expense")
print("2. View all expenses")
print("3. Show total and average")
print("4. Clear all expenses")
print("5. Exit")
let choice = readLine()
if choice == "1" {
print("Enter expense amount:")
if let input = readLine(), let amount = Double(input) {
expenses.append(amount)
print("Expense added!")
}
} else if choice == "2" {
if expenses.isEmpty {
print("No expenses recorded.")
} else {
print("Your expenses:")
for expense in expenses {
print("- $\(expense)")
}
}
} else if choice == "3" {
print("Coming soon...")
} else if choice == "4" {
print("Coming soon...")
} else if choice == "5" {
print("Goodbye!")
break
} else {
print("Coming soon...")
}
}基础知识中的所有课
自己练习: Swift 在线编辑器