处理错误
本课属于 Coddy Swift 学习旅程的“基础知识”单元。第 83 课,共 86 课。
挑战
简单在上一课中,你实现了“清除所有支出”功能。现在,为支出跟踪器中的无效输入添加错误处理。
修改代码,妥善处理无效输入:
- 当用户输入无效的菜单选项(除
"1"、"2"、"3"、"4"或"5"以外的任何内容)时,输出Invalid option. Please try again. - 添加支出时(选项
"1"),如果输入无法转换为有效的Double,输出Invalid amount. Expense not added.,然后返回菜单,不要向数组中添加任何内容 - 其他所有功能都应继续像以前一样正常运行
预期行为:
- 输入无效的菜单选项时,显示错误消息并再次显示菜单
- 输入无效的支出金额时,显示错误消息并返回菜单
- 有效输入仍能像前几课中实现的那样正常运行
交互示例:
1. Add expense
2. View all expenses
3. Show total and average
4. Clear all expenses
5. Exit
7
Invalid option. Please try again.
1. Add expense
2. View all expenses
3. Show total and average
4. Clear all expenses
5. Exit
1
Enter expense amount:
abc
Invalid amount. Expense not added.
1. Add expense
2. View all expenses
3. Show total and average
4. Clear all expenses
5. Exit
1
Enter expense amount:
25.0
Expense added!
1. Add expense
2. View all expenses
3. Show total and average
4. Clear all expenses
5. Exit
2
Your expenses:
- $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" {
if expenses.isEmpty {
print("No expenses to calculate.")
} else {
let total = expenses.reduce(0, +)
let average = total / Double(expenses.count)
print("Total: $\(total)")
print("Average: $\(average)")
}
} else if choice == "4" {
expenses.removeAll()
print("All expenses cleared!")
} else if choice == "5" {
print("Goodbye!")
break
} else {
print("Coming soon...")
}
}基础知识中的所有课
自己练习: Swift 在线编辑器