Menu
Coddy logo textTech

Gestion des erreurs

Fait partie de la section Fondamentaux du Journey Swift de Coddy — leçon 83 sur 86.

challenge icon

Défi

Facile

Dans la leçon précédente, vous avez implémenté la fonctionnalité « Effacer toutes les dépenses ». Maintenant, ajoutez la gestion des erreurs pour les entrées invalides dans l'ensemble du suivi des dépenses.

Modifiez votre code pour gérer les entrées invalides de manière appropriée :

  1. Lorsque l'utilisateur saisit une option de menu invalide (tout autre chose que "1", "2", "3", "4", ou "5"), affichez Invalid option. Please try again.
  2. Lors de l'ajout d'une dépense (option "1"), si l'entrée ne peut pas être convertie en un Double valide, affichez Invalid amount. Expense not added. et revenez au menu sans rien ajouter au tableau
  3. Toutes les autres fonctionnalités doivent continuer à fonctionner comme auparavant

Comportement attendu :

  • Les choix de menu invalides affichent un message d'erreur et affichent à nouveau le menu
  • Les montants de dépenses invalides affichent un message d'erreur et reviennent au menu
  • Les entrées valides continuent de fonctionner comme implémenté dans les leçons précédentes

Exemple d'interaction :

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!

Essayez vous-même

// 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...")
    }
}

Toutes les leçons de Fondamentaux