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 hast du die Funktion „Alle Ausgaben löschen“ implementiert. Füge nun im gesamten Ausgaben-Tracker eine Fehlerbehandlung für ungültige Eingaben hinzu.

Ändere deinen Code so, dass ungültige Eingaben ordnungsgemäß behandelt werden:

  1. Wenn der Benutzer eine ungültige Menüoption eingibt (alles außer "1", "2", "3", "4" oder "5"), gib Invalid option. Please try again. aus.
  2. Wenn eine Ausgabe hinzugefügt wird (Option "1") und die Eingabe nicht in ein gültiges Double konvertiert werden kann, gib Invalid amount. Expense not added. aus und kehre zum Menü zurück, ohne etwas zum Array hinzuzufügen.
  3. Alle anderen Funktionen sollten weiterhin wie zuvor 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 wie in den vorherigen Lektionen implementiert.

Beispielinteraktion:

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

Übe selbstständig: Swift-Playground