에러 처리
Coddy Swift 여정의 기초 섹션에 포함된 레슨 — 86개 중 83번째.
챌린지
쉬움이전 레슨에서는 "모든 지출 내역 삭제" 기능을 구현했습니다. 이제 지출 추적기 전체에서 유효하지 않은 입력에 대한 에러 처리를 추가해 보세요.
유효하지 않은 입력을 원활하게 처리하도록 코드를 수정하세요:
- 사용자가 유효하지 않은 메뉴 옵션(
"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...")
}
}