Fehlerbehandlung
Teil des Abschnitts Grundlagen der Swift-Journey von Coddy — Lektion 83 von 86.
Aufgabe
EinfachIn 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:
- Wenn der Benutzer eine ungültige Menüoption eingibt (etwas anderes als
"1","2","3","4"oder"5"), geben SieInvalid option. Please try again.aus. - Beim Hinzufügen einer Ausgabe (Option
"1"), falls die Eingabe nicht in ein gültigesDoubleumgewandelt werden kann, geben SieInvalid amount. Expense not added.aus und kehren Sie zum Menü zurück, ohne etwas zum Array hinzuzufügen. - 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
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorZusammengesetzte ZuweisungWiederholung - Einfache MathematikVergleichsoperatoren7Grundlagen der Ein- und Ausgabe
Print-FunktionString-InterpolationReadLine-EingabeTypumwandlungWiederholung - Bis 120Wiederholung - Wahr oder Falsch10Funktionen
Eine Funktion deklarierenParameter und ArgumenteRückgabewerteArgument-LabelsWiederholung - Sigma-FunktionWiederholung - ValidierungsfunktionStandardwerte13Iterieren über Sequenzen
Iterieren über ElementeDie enumerate-MethodeIterieren über Strings Teil 1Iterieren über Strings Teil 22Variablen
Let vs. VarTyp-AnnotationenZahlenStringsBooleansBenennungskonventionenZusammenfassung – Variablen initialisieren5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Wiederholung – Einfache LogikLogische Operatoren Teil 3Ternärer Operator8Rechnungs-Splitter
WillkommensnachrichtEingabe abfragen14Arrays für Fortgeschrittene
Array Slicing Teil 1Array Slicing Teil 2Sequenz-OperatorenDie Contains-Methode3Optionals
Was sind OptionalsUnwrapping mit If LetGuard LetNil-Coalescing-OperatorZusammenfassung – Sicheres Unwrapping6Entscheidungsfindung
If-AnweisungIf - ElseWiederholung - Einfacher TaschenrechnerSwitch-AnweisungSwitch mit Wertebereichen9Schleifen
For-In-SchleifeWhile-SchleifeRepeat-While-SchleifeBreakContinueWiederholung – FakultätBereiche in SchleifenVerschachtelte SchleifeWiederholung – Dynamische Eingabe12Array-Grundlagen
Ein Array deklarierenZugriff auf ElementeArrays modifizierenArray-MethodenWiederholung - ProduktlisteWiederholung - Umgekehrtes ArrayTupel15Täglicher Ausgaben-Tracker
ProjektübersichtProgramm beenden