Menu
Coddy logo textTech

ביטוי When

חלק מהיחידה יסודות במסלול ה-Kotlin של Coddy. שיעור 32 מתוך 93.

כשיש לך כמה ערכים מסוימים לבדוק מולם, שרשראות ארוכות של הצהרות else if עלולות להיות קשות לקריאה. Kotlin מספקת את הביטוי when כחלופה ברורה יותר להתאמת ערך למספר אפשרויות.

fun main() {
    val day = 3
    
    val dayName = when (day) {
        1 -> "Monday"
        2 -> "Tuesday"
        3 -> "Wednesday"
        4 -> "Thursday"
        5 -> "Friday"
        else -> "Weekend"
    }
    
    println(dayName)  // מדפיס: Wednesday
}

ביטוי when מקבל ערך ומשווה אותו לכל ענף. כשנמצאת התאמה, מוחזרת התוצאה המתאימה. ענף else מטפל בכל ערך שאינו תואם לאף אחד מהמקרים המפורטים.

אפשר גם להתאים כמה ערכים בענף אחד על ידי הפרדתם באמצעות פסיקים:

fun main() {
    val day = 6
    
    val type = when (day) {
        1, 2, 3, 4, 5 -> "Weekday"
        6, 7 -> "Weekend"
        else -> "Invalid"
    }
    
    println(type)  // מדפיס: Weekend
}

ביטוי when שמפיק ערך חייב להיות ממצה: לכל קלט אפשרי חייבת להיות תוצאה. בדוגמאות המספרים השלמים האלה נחוץ else, אבל when בוליאני עם ענפים גם של true וגם של false לא.

challenge icon

אתגר

קל

המשתנה הבא נתון:

val month = 4

השתמשו בביטוי when כדי לקבוע את העונה על סמך מספר החודש ולאחסן את התוצאה במשתנה בשם season.

תנאים:

  • החודשים 12, 1, 2 צריכים להחזיר "Winter"
  • החודשים 3, 4, 5 צריכים להחזיר "Spring"
  • החודשים 6, 7, 8 צריכים להחזיר "Summer"
  • החודשים 9, 10, 11 צריכים להחזיר "Fall"
  • כל ערך אחר צריך להחזיר "Invalid month"

השתמשו בערכים המופרדים בפסיקים בענפי when כדי לקבץ חודשים השייכים לאותה עונה.

הדפיסו את הערך של season.

נסו בעצמכם

fun main() {
    val month = 4
    
    // TODO: כתבו את הקוד שלכם למטה
    // השתמשו בביטוי when כדי לקבוע את העונה לפי החודש
    // שמרו את התוצאה במשתנה בשם 'season'
    
    
    // הדפיסו את התוצאה
    println(season)
}
quiz iconבחנו את עצמכם

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

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

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