Menu
Coddy logo textTech

Fehlerbehandlung

Teil des Abschnitts Grundlagen der Swift-Journey von Coddy — Lektion 83 von 86.

challenge icon

Aufgabe

Einfach

In der vorherigen Lektion haben Sie die Funktion "Alle Ausgaben löschen" implementiert. Fügen Sie nun eine Fehlerbehandlung für ungültige Eingaben im gesamten Ausgaben-Tracker hinzu.

Ändern Sie Ihren Code, um ungültige Eingaben angemessen zu behandeln:

  1. Wenn der Benutzer eine ungültige Menüoption eingibt (etwas anderes als "1", "2", "3", "4" oder "5"), geben Sie Invalid option. Please try again. aus.
  2. Beim Hinzufügen einer Ausgabe (Option "1"), falls die Eingabe nicht in ein gültiges Double umgewandelt werden kann, geben Sie Invalid amount. Expense not added. aus und kehren Sie zum Menü zurück, ohne etwas zum Array hinzuzufügen.
  3. Alle anderen Funktionen sollen weiterhin wie bisher funktionieren.

Erwartetes Verhalten:

  • Ungültige Menüauswahlen zeigen eine Fehlermeldung an und zeigen das Menü erneut an.
  • Ungültige Ausgabenbeträge zeigen eine Fehlermeldung an und kehren zum Menü zurück.
  • Gültige Eingaben funktionieren weiterhin so, wie in den vorherigen Lektionen implementiert.

Beispiel-Interaktion:

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!

Probier es selbst

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

Alle Lektionen in Grundlagen