Hataları Ele Alma
Coddy'nin Swift Journey'sinin Temeller bölümünün bir parçası. Ders 83 / 86.
Görev
KolayÖnceki derste, "Tüm harcamaları temizle" özelliğini uyguladınız. Şimdi, harcama takipçisi genelinde geçersiz girişler için hata yönetimini ekleyin.
Kodunuzu, geçersiz girişleri düzgün bir şekilde ele alacak şekilde değiştirin:
- Kullanıcı geçersiz bir menü seçeneği girdiğinde (
"1","2","3","4"veya"5"dışındaki herhangi bir şey),Invalid option. Please try again.yazdırın. - Bir harcama eklerken (seçenek
"1"), giriş geçerli birDoubledeğerine dönüştürülemiyorsa,Invalid amount. Expense not added.yazdırın ve diziye hiçbir şey eklemeden menüye dönün. - Diğer tüm işlevler daha önce olduğu gibi çalışmaya devam etmelidir.
Beklenen davranış:
- Geçersiz menü seçimleri bir hata mesajı görüntüler ve menüyü tekrar gösterir.
- Geçersiz harcama tutarları bir hata mesajı görüntüler ve menüye döner.
- Geçerli girişler önceki derslerde uygulandığı gibi çalışmaya devam eder.
Örnek etkileşim:
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!Kendin dene
// 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...")
}
}Temeller bölümündeki tüm dersler
4Operatörler Bölüm 1
Aritmetik OperatörlerMod OperatörüBileşik AtamaTekrar - Basit MatematikKarşılaştırma Operatörleri7Temel Girdi/Çıktı
Print FonksiyonuDize EnterpolasyonuReadLine ile GirdiTür DönüşümüTekrar - 120'ye KadarTekrar - Doğru mu Yanlış mı10Fonksiyonlar
Fonksiyon TanımlamaParametreler ve ArgümanlarDönüş DeğerleriArgüman EtiketleriTekrar - Sigma FonksiyonuTekrar - Doğrulama FonksiyonuVarsayılan Değerler13Diziler Üzerinde Yineleme
Öğeler Üzerinde YinelemeEnumerate YöntemiDizeler Üzerinde Yineleme P1Dizeler Üzerinde Yineleme P22Değişkenler
Let ve VarTür AnotasyonlarıSayılarStringBooleanAdlandırma KurallarıTekrar - Değişkenleri Başlat5Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Tekrar - Basit MantıkMantıksal Operatörler Bölüm 3Üçlü Operatör8Hesap Bölüştürme Hesaplayıcısı
Karşılama MesajıGirdi Alma11FizzBuzz'a Farklı Bir Yorum
Oyuna Genel BakışFizzBuzz Fonksiyonu3Optional Değerler
Optional Değerler NedirIf Let ile AçmaGuard LetNil Birleştirme OperatörüTekrar - Güvenli Açma9Döngüler
For-In DöngüsüWhile DöngüsüRepeat-While DöngüsüBreakContinueTekrar - FaktöriyelDöngülerde Aralıklarİç İçe DöngüTekrar - Dinamik Girdi12Dizilerin Temelleri
Dizi TanımlamaÖğelere ErişimDizileri DeğiştirmeDizi MetotlarıTekrar - Ürün ListesiTekrar - Ters Çevrilmiş DiziDemetler15Günlük Gider Takipçisi
Proje Genel BakışıProgramdan ÇıkışKendi başına pratik yap: Swift playground