Menu
Coddy logo textTech

Hata Yönetimi

Coddy'nin Kotlin Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 90 / 93.

challenge icon

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 null döndürürse (geçersiz girdi), gideri eklemek yerine Invalid 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 option yazdı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

Kendi başına pratik yap: Kotlin playground