Menangani error
Termasuk bagian Dasar-Dasar dalam perjalanan Swift di Coddy. Pelajaran 83 dari 86.
Tantangan
MudahDi pelajaran sebelumnya, kamu menerapkan fitur "Clear all expenses". Sekarang, tambahkan penanganan error untuk input yang tidak valid di seluruh pelacak pengeluaran.
Ubah kodemu agar dapat menangani input yang tidak valid dengan baik:
- Saat pengguna memasukkan opsi menu yang tidak valid (apa pun selain
"1","2","3","4", atau"5"), cetakInvalid option. Please try again. - Saat menambahkan pengeluaran (opsi
"1"), jika input tidak dapat dikonversi menjadiDoubleyang valid, cetakInvalid amount. Expense not added.dan kembali ke menu tanpa menambahkan apa pun ke array - Semua fungsi lainnya harus tetap bekerja seperti sebelumnya
Perilaku yang diharapkan:
- Pilihan menu yang tidak valid menampilkan pesan error dan menampilkan menu lagi
- Jumlah pengeluaran yang tidak valid menampilkan pesan error dan kembali ke menu
- Input yang valid tetap berfungsi seperti yang diterapkan di pelajaran sebelumnya
Contoh interaksi:
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!Coba sendiri
// 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...")
}
}Semua pelajaran di Dasar-Dasar
4Operator, Bagian 1
Operator AritmetikaOperator ModuloPenugasan MajemukRangkuman: Matematika SederhanaOperator Perbandingan7Dasar input/output
Fungsi printInterpolasi stringInput ReadLineKonversi tipe dataUlasan: Hingga 120Ulasan: Benar atau Salah10Fungsi
Deklarasikan FungsiParameter dan ArgumenNilai KembalianLabel ArgumenRangkuman: Fungsi SigmaRangkuman: Fungsi ValidasiNilai Default13Perulangan pada Urutan
Perulangan pada ElemenMetode enumeratePerulangan pada string P1Perulangan pada string P25Operator Bagian 2
Operator Logika Bagian 1Operator Logika Bagian 2Ringkasan: Logika SederhanaOperator Logika Bagian 3Operator Ternary8Kalkulator Pembagi Tagihan
Pesan SambutanMengambil Input3Optional
Apa Itu OptionalMengambil Nilai dari Optional dengan If LetGuard LetOperator Nil CoalescingRingkasan, Mengambil Nilai dari Optional dengan Aman6Pengambilan Keputusan
Pernyataan IfIf - ElseUlasan: Kalkulator SederhanaPernyataan SwitchSwitch dengan Rentang9Perulangan
For-In LoopWhile LoopRepeat-While LoopBreakContinueRingkasan: FaktorialRentang dalam LoopLoop BersarangRingkasan: Input Dinamis12Dasar array
Mendeklarasikan arrayMengakses elemenMengubah arrayMethod arrayRingkasan: Daftar produkRingkasan: Array terbalikTuple15Pelacak Pengeluaran Harian
Gambaran Umum ProyekKeluar dari ProgramLatihan sendiri: Playground Swift