תנאי שמירה
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Kotlin של Coddy. שיעור 41 מתוך 63.
תנאי הגנה מחזיר מוקדם כאשר הקלט אינו יכול להמשיך במסלול הראשי. בדיקת מקרים חריגים תחילה יכולה לצמצם תנאים מקוננים. פקודת return יוצאת מהפונקציה הנוכחית, ולכן פקודות מאוחרות יותר באותה פונקציה אינן מתבצעות.
fun deliveryFee(items: Int): Int {
if (items < 0) return -1
return items * 2
}בתוך main:
println(deliveryFee(-1))הקלט השלילי מפעיל את תנאי השמירה ומונע את חישוב דמי המשלוח הרגיל.
תנאי שמירה יוצא מהפונקציה לפני המסלול הרגיל כאשר התנאי שלו מתקיים.
אתגר
בינוניהשלימו את firstOrMissing עם הפרמטרים values: List<Int>. החזירו -1 עבור רשימה ריקה באמצעות סעיף guard. אחרת, החזירו את הערך הראשון.
אלא אם צוין לעיל טווח מחמיר יותר, אוספים מכילים לכל היותר 100 איברים בכל רמה, וארגומנטים של מספרים שלמים וערכי מספרים שלמים באוספים הם בין -1000 ל־1000. טקסט שסופק לצורך ניתוח עשוי לכלול ייצוגים לא תקינים או מחוץ לטווח, כמתואר.
החזירו ערך מסוג Int. השאירו את קוד הקלט/פלט שסופק ללא שינוי. הוא קורא ארגומנטים סקלריים, אחד בכל שורה; רשימה מתחילה במספר האיברים שלה ולאחריו האיברים, ומפה מתחילה במספר הרשומות שלה ולאחריו כל מפתח וערך. רשימות מקוננות חוזרות על המבנה של מספר איברים ואחריו איברים עבור כל שורה. ה־main שסופק מדפיס את הערך המוחזר ואחריו תו שורה חדשה אחד. רשימות משתמשות בתבנית הסטנדרטית של Kotlin עם סוגריים מרובעים; אל תדפיסו תוויות נוספות.
נסו בעצמכם
fun firstOrMissing(values: List<Int>): Int {
// כתבו כאן את הפתרון שלכם.
return 0
}
fun main() {
val valuesCount = readln().toInt()
val values = mutableListOf<Int>()
for (i0 in 0 until valuesCount) {
val valuesItem = readln().toInt()
values.add(valuesItem)
}
println(firstOrMissing(values))
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
4אוספים מקוננים
רשימות של רשימותמעבר על שורותסיכומים של שורותהשטחת רשימות מקוננותסיכום – שורות של מקומות ישיבה7צינורות עיבוד של אוספים
טרנספורמציה באמצעות Mapסינון ערכיםבדיקת כללי האוסףצבירה באמצעות Foldסיכום – סכומים מאושרים5פרויקט - ספר טלפונים
שמירת אנשי קשרחיפוש אנשי קשר9זרימת בקרה מתקדמת
תנאי שמירהיציאה מלולאות מתויגותהמשך לולאות מתויגותפונקציות רקורסיביותסיכום – השורה התקינה הראשונהתרגלו בעצמכם: Kotlin אונליין