Fehlerbehandlung
Teil des Abschnitts Grundlagen der Swift-Journey von Coddy. Lektion 83 von 86.
Aufgabe
EinfachIn 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:
- Wenn der Benutzer eine ungültige Menüoption eingibt (alles außer
"1","2","3","4"oder"5"), gibInvalid option. Please try again.aus. - Wenn eine Ausgabe hinzugefügt wird (Option
"1") und die Eingabe nicht in ein gültigesDoublekonvertiert werden kann, gibInvalid amount. Expense not added.aus und kehre zum Menü zurück, ohne etwas zum Array hinzuzufügen. - 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
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorZusammengesetzte ZuweisungRückblick – Einfache MathematikVergleichsoperatoren7Grundlagen der Ein- und Ausgabe
Print-FunktionString-InterpolationReadLine-EingabeTypkonvertierungWiederholung – Bis 120Wiederholung – Wahr oder falsch10Funktionen
Eine Funktion deklarierenParameter und ArgumenteRückgabewerteArgumentbezeichnungenWiederholung – Sigma-FunktionWiederholung – ValidierungsfunktionStandardwerte13Über Sequenzen iterieren
Über Elemente iterierenDie Enumerate-MethodeÜber Strings iterieren Teil 1Über Strings iterieren Teil 22Variablen
let vs. varTypannotationenZahlenStringBooleanNamenskonventionenRückblick – Variablen initialisieren5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Zusammenfassung – Einfache LogikLogische Operatoren Teil 3Ternärer Operator8Rechner zum Teilen der Rechnung
WillkommensnachrichtEingaben erfassen11FizzBuzz mit einer Wendung
SpielübersichtDie FizzBuzz-Funktion14Arrays – Fortgeschritten
Array-Slicing Teil 1Array-Slicing Teil 2SequenzoperatorenDie Contains-Methode3Optionals
Was sind Optionals?Entpacken mit If LetGuard LetNil-Coalescing-OperatorZusammenfassung – Sicheres Entpacken6Entscheidungen treffen
If-AnweisungIf - ElseRückblick – Einfacher TaschenrechnerSwitch-AnweisungSwitch mit Bereichen9Schleifen
For-In-SchleifeWhile-SchleifeRepeat-While-SchleifeBreakContinueZusammenfassung – FakultätBereiche in SchleifenVerschachtelte SchleifeZusammenfassung – Dynamische Eingabe12Grundlagen von Arrays
Ein Array deklarierenAuf Elemente zugreifenArrays ändernArray-MethodenRückblick – ProduktlisteRückblick – Umgekehrtes ArrayTupel15Täglicher Ausgaben-Tracker
ProjektübersichtProgramm beendenÜbe selbstständig: Swift-Playground