ביטוי 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 לא.
אתגר
קלהמשתנה הבא נתון:
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)
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
7קלט/פלט בסיסיים
פונקציית Printlnתבניות מחרוזתקלט באמצעות ReadLineהמרת טיפוסיםסיכום – שנים עד הפרישהסיכום – אמת או שקר10פונקציות
הכרזה על פונקציהפרמטרים וארגומנטיםערכי החזרהארגומנטים בעלי שםערכי ברירת מחדלפונקציות עם ביטוי יחידחזרה – פונקציית Sigmaחזרה – פונקציית אימות3אפשרות לערך null
מהי בטיחות מפני nullטיפוסים שיכולים להיות nullאופרטור קריאה בטוחהאופרטור אלביסיסודות אתגר הפונקציותאופרטור ההבטחה לאי־nullסיכום – גישה בטוחה9לולאות
לולאת forלולאת whileלולאת do-whilebreakcontinueטווחים בלולאותלולאה מקוננתחזרה – עצרתחזרה – קלט דינמיתרגלו בעצמכם: Kotlin אונליין