Menu
Coddy logo textTech

טיפול בשגיאות

חלק מהיחידה יסודות במסלול ה-Swift של Coddy. שיעור 83 מתוך 86.

challenge icon

אתגר

קל

בשיעור הקודם מימשת את התכונה "Clear all expenses". עכשיו, הוסף טיפול בשגיאות עבור קלטים לא תקינים בכל רחבי מעקב ההוצאות.

שנה את הקוד שלך כך שיטפל בקלטים לא תקינים בצורה נאותה:

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

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: Swift אונליין