Hata Yönetimi
Coddy'nin Kotlin Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 90 / 93.
Görev
OrtaÖnceki derste "Clear All" işlevini uyguladınız. Şimdi, kullanıcının geçersiz bir gider tutarı girdiği durumları ele almak için girdi doğrulaması ekleyin.
Gider eklerken oluşan hataları (seçenek 1) ele alacak şekilde programınızı değiştirin:
- Kullanıcı bir gider tutarı girdiğinde, girdiyi güvenli bir şekilde dönüştürmek için
toDoubleOrNull()kullanın - Dönüştürme işlemi
nulldöndürürse (geçersiz girdi), gideri eklemek yerineInvalid amount!yazdırın - Dönüştürme başarılı olursa gideri ekleyin ve daha önce olduğu gibi
Expense added!yazdırın
Diğer tüm seçenekler daha önce olduğu gibi çalışmaya devam etmelidir:
- Seçenek
1: Gider ekle (doğrulamayla birlikte) - Seçenek
2: Tüm giderleri görüntüle - Seçenek
3: Toplam ve ortalama - Seçenek
4: Tüm giderleri temizle - Seçenek
5:Goodbye!yazdır ve çık - Geçersiz seçenekler:
Invalid optionyazdır
Girdi biçimi:
Menü seçenekleri ve gider tutarları dizeler olarak verilir.
Çıktı biçimi:
Menü ve ardından her işlem için uygun yanıt.
Örnek:
Girdiler 1, abc, 1, 25.0, 1, hello, 2 ve 5 ise çıktı şu şekilde olmalıdır:
--- Expense Tracker ---
1. Add Expense
2. View All Expenses
3. Total and Average
4. Clear All
5. Exit
Choose an option:
Enter expense amount:
Invalid amount!
--- Expense Tracker ---
1. Add Expense
2. View All Expenses
3. Total and Average
4. Clear All
5. Exit
Choose an option:
Enter expense amount:
Expense added!
--- Expense Tracker ---
1. Add Expense
2. View All Expenses
3. Total and Average
4. Clear All
5. Exit
Choose an option:
Enter expense amount:
Invalid amount!
--- Expense Tracker ---
1. Add Expense
2. View All Expenses
3. Total and Average
4. Clear All
5. Exit
Choose an option:
Your expenses:
- $25.0
--- Expense Tracker ---
1. Add Expense
2. View All Expenses
3. Total and Average
4. Clear All
5. Exit
Choose an option:
Goodbye!İpucu: toDoubleOrNull() yöntemi, dize bir Double değerine dönüştürülemiyorsa programın çökmesi yerine null döndürür. Bu durumu ele almak için Elvis operatörünü veya null denetimini kullanın.
Kendin dene
fun main() {
val expenses = mutableListOf<Double>()
while (true) {
println("--- Expense Tracker ---")
println("1. Add Expense")
println("2. View All Expenses")
println("3. Total and Average")
println("4. Clear All")
println("5. Exit")
println("Choose an option:")
val choice = readLine()
if (choice == "1") {
println("Enter expense amount:")
val amount = readLine()!!.toDouble()
expenses.add(amount)
println("Expense added!")
} else if (choice == "2") {
if (expenses.isEmpty()) {
println("No expenses recorded.")
} else {
println("Your expenses:")
for (expense in expenses) {
println("- \$$expense")
}
}
} else if (choice == "3") {
if (expenses.isEmpty()) {
println("No expenses recorded.")
} else {
val total = expenses.sum()
val average = total / expenses.size
println("Total: \$$total")
println("Average: \$$average")
}
} else if (choice == "4") {
expenses.clear()
println("All expenses cleared!")
} else if (choice == "5") {
println("Goodbye!")
break
} else {
println("Invalid option")
}
}
}Temel Bilgiler bölümündeki tüm dersler
4Operatörler Bölüm 1
Aritmetik OperatörlerModül OperatörüArtırımlı AtamaKarşılaştırma OperatörleriTekrar - Basit Matematik7Temel Girdi/Çıktı
Println FonksiyonuDize ŞablonlarıReadLine GirdisiTür DönüşümüTekrar - Emekliliğe Kalan YıllarTekrar - Doğru veya Yanlış10Fonksiyonlar
Fonksiyon TanımlamaParametreler ve ArgümanlarDönüş DeğerleriAdlandırılmış ArgümanlarVarsayılan DeğerlerTek İfadeli FonksiyonlarTekrar - Sigma FonksiyonuTekrar - Doğrulama Fonksiyonu2Değişkenler
Val ve VarTür Çıkarımı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 2Mantıksal Operatörler Bölüm 3If İfadesiyle Üçlü OperatörTekrar - Basit Mantık8Hesap Paylaştırma Hesaplayıcısı
Hoş Geldiniz MesajıGirdi Alma3Null Olabilirliği
Null Güvenliği NedirNull Olabilir TürlerGüvenli Çağrı OperatörüElvis OperatörüFonksiyon Görevi TemelleriNull Değil DoğrulamasıÖzet - Güvenli Erişim6Karar Verme
If İfadesiIf - Elseİfade Olarak IfWhen İfadesiAralıklarla WhenTekrar - Basit Hesap Makinesi9Döngüler
For DöngüsüWhile DöngüsüDo-While DöngüsüBreakContinueDöngülerde Aralıklarİç İçe DöngüTekrar - FaktöriyelTekrar - Dinamik Girdi12Listelerin Temelleri
List ve MutableList KarşılaştırmasıÖğelere ErişmeListeleri DeğiştirmeListe MetotlarıPair ve TripleTekrar - Ürün ListesiTekrar - Tersine Çevrilmiş Liste15Günlük Harcama Takipçisi
Proje Genel BakışıProgramdan ÇıkışKendi başına pratik yap: Kotlin playground