טיפול בשגיאות
חלק מהיחידה יסודות במסלול ה-Swift של Coddy. שיעור 83 מתוך 86.
אתגר
קלבשיעור הקודם מימשת את התכונה "Clear all expenses". עכשיו, הוסף טיפול בשגיאות עבור קלטים לא תקינים בכל רחבי מעקב ההוצאות.
שנה את הקוד שלך כך שיטפל בקלטים לא תקינים בצורה נאותה:
- כאשר המשתמש מזין אפשרות לא תקינה בתפריט (כל דבר מלבד
"1","2","3","4"או"5"), הדפסInvalid option. Please try again. - בעת הוספת הוצאה (אפשרות
"1"), אם אי אפשר להמיר את הקלט לערך תקין מסוגDouble, הדפסInvalid amount. Expense not added.וחזור לתפריט מבלי להוסיף דבר למערך - כל שאר הפונקציונליות צריכה להמשיך לעבוד כבעבר
התנהגות צפויה:
- בחירות לא תקינות בתפריט מציגות הודעת שגיאה ומציגות שוב את התפריט
- סכומי הוצאות לא תקינים מציגים הודעת שגיאה וחוזרים לתפריט
- קלטים תקינים ממשיכים לפעול כפי שמומש בשיעורים הקודמים
דוגמת אינטראקציה:
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...")
}
}כל השיעורים ביחידה יסודות
7קלט/פלט בסיסי
פונקציית ההדפסהאינטרפולציה של מחרוזותקלט באמצעות ReadLineהמרת טיפוסיםחזרה – עד 120חזרה – אמת או שקר3ערכים אופציונליים
מהם ערכים אופציונלייםשליפת ערך באמצעות If LetGuard Letאופרטור איחוד עם Nilסיכום – שליפה בטוחה של ערך9לולאות
לולאת For-Inלולאת Whileלולאת Repeat-WhileBreakContinueחזרה – עצרתטווחים בלולאותלולאה מקוננתחזרה – קלט דינמי12יסודות המערכים
הכרזה על מערךגישה לאיבריםשינוי מערכיםמתודות של מערכיםחזרה – רשימת מוצריםמערך הפוךטאפלים15מעקב הוצאות יומי
סקירת הפרויקטיציאה מהתוכניתתרגלו בעצמכם: Swift אונליין