Menu
Coddy logo textTech

אימות באמצעות Require

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Kotlin של Coddy. שיעור 54 מתוך 63.

require(condition) בודקת חוזה של ארגומנט לפונקציה. אם התנאי הוא false, היא זורקת IllegalArgumentException. למבדה נגררת יכולה לספק הודעת שגיאה. תפיסת השגיאה הצפויה הזו במקום שבו מתבצעת הקריאה מאפשרת לך להמיר קלט לא תקין לתוצאה מוגדרת.

fun ticketCost(count: Int): Int {
    require(count >= 0) { "count must be nonnegative" }
    return count * 5
}

בתוך main:

try {
    println(ticketCost(-2))
} catch (error: IllegalArgumentException) {
    println("invalid")
}

דרישת הארגומנט שלא מתקיימת גורמת לזריקת חריגה לפני חישוב העלות.

require זורקת IllegalArgumentException כשהתנאי שלה הוא false.

challenge icon

אתגר

בינוני

השלם את validatedCost עם הפרמטרים count: Int. השתמש בפונקציית העזר שסופקה לחישוב העלות, שדורשת שספירת הפריטים תהיה לא שלילית. החזר את העלות כמחרוזת במקרה של הצלחה, או invalid אם נזרקת IllegalArgumentException. הערך של count הוא בין ‎-1000 ל־1000.

אלא אם צוין לעיל טווח מצומצם יותר, האוספים מכילים לכל היותר 100 איברים בכל רמה, והארגומנטים מסוג מספר שלם וערכי האוספים מסוג מספר שלם הם בין ‎-1000 ל־1000. הטקסט שמסופק לניתוח עשוי לכלול ייצוגים לא תקינים או מחוץ לטווח, כמתואר.

החזר ערך מסוג String. השאר את קוד הקלט/פלט שסופק. הוא קורא ארגומנטים סקלריים, אחד בכל שורה; רשימה מתחילה במספר האיברים שלה ואחריו האיברים, ומפה מתחילה במספר הזוגות שלה ואחריו כל מפתח וערך. ברשימות מקוננות, הפורמט של מספר האיברים והאיברים חוזר עבור כל שורה. הפונקציה main שסופקה מדפיסה את ערך ההחזרה ואחריו תו שורה חדשה. רשימות משתמשות בפורמט הסטנדרטי של Kotlin עם סוגריים מרובעים; אל תדפיס תוויות נוספות.

נסו בעצמכם

fun cost(count: Int): Int {
    require(count >= 0) { "count must be nonnegative" }
    return count * 5
}
fun validatedCost(count: Int): String {
    // כתבו כאן את הפתרון שלכם.
    return ""
}
fun main() {
    val count = readln().toInt()
    println(validatedCost(count))
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

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