Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

معالجة الأخطاء

جزء من قسم الأساسيات في رحلة Swift على Coddy — الدرس 83 من 86.

challenge icon

التحدي

سهل

في الدرس السابق، قمت بتنفيذ ميزة "مسح جميع المصروفات". الآن، أضف معالجة الأخطاء للمدخلات غير الصالحة في جميع أنحاء متتبع المصروفات.

قم بتعديل الكود الخاص بك للتعامل مع المدخلات غير الصالحة بسلاسة:

  1. عندما يدخل المستخدم خيار قائمة غير صالح (أي شيء بخلاف "1"، أو "2"، أو "3"، أو "4"، أو "5")، اطبع Invalid option. Please try again.
  2. عند إضافة مصروف (الخيار "1")، إذا تعذر تحويل المدخل إلى Double صالح، اطبع Invalid amount. Expense not added. وعد إلى القائمة دون إضافة أي شيء إلى المصفوفة
  3. يجب أن تستمر جميع الوظائف الأخرى في العمل كما كانت من قبل

السلوك المتوقع:

  • تعرض خيارات القائمة غير الصالحة رسالة خطأ وتظهر القائمة مرة أخرى
  • تعرض مبالغ المصروفات غير الصالحة رسالة خطأ وتعود إلى القائمة
  • تستمر المدخلات الصالحة في العمل كما تم تنفيذها في الدروس السابقة

مثال على التفاعل:

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!

جرّب بنفسك

// 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...")
    }
}

جميع دروس الأساسيات