Menu
Coddy logo textTech

מתודת WithIndex

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

כשעוברים על רשימה, לעיתים קרובות צריך לדעת לא רק מהו האיבר, אלא גם מהו המיקום שלו. המתודה withIndex() נותנת לך את שניהם בבת אחת.

קוראים ל־withIndex() בכל רשימה כדי לקבל זוגות של אינדקס וערך:

val colors = listOf("Red", "Green", "Blue")
for ((index, color) in colors.withIndex()) {
    println("$index: $color")
}
// פלט:
// 0: Red
// 1: Green
// 2: Blue

שימו לב לתחביר שבתוך הסוגריים: (index, color). זה נקרא פירוק, והוא מפרק את האינדקס ואת הערך למשתנים נפרדים. תוכלו לתת למשתנים האלה כל שם שמתאים לקוד שלכם.

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

val tasks = listOf("Wake up", "Exercise", "Eat breakfast")
for ((i, task) in tasks.withIndex()) {
    println("Step ${i + 1}: $task")
}
// פלט:
// Step 1: Wake up
// Step 2: Exercise
// Step 3: Eat breakfast
challenge icon

אתגר

בינוני

תקבלו רשימה של שמות תלמידים כקלט. קראו תחילה את מספר התלמידים, ואז קראו כל שם.

באמצעות withIndex(), הדפיסו כל תלמיד עם מספר הדירוג שלו (החל מ־1, ולא מ־0).

פורמט הקלט:

  • השורה הראשונה: מספר שלם n המייצג את מספר התלמידים
  • n השורות הבאות: שמות התלמידים (מחרוזות)

פורמט הפלט:

הדפיסו כל תלמיד בשורה נפרדת בפורמט:

Rank 1: Alice
Rank 2: Bob
Rank 3: Charlie

זכרו ש־withIndex() מחזירה לכם אינדקסים שמתחילים ב־0, לכן תצטרכו להתאים את מספרי הדירוג כך שיתחילו ב־1.

נסו בעצמכם

fun main() {
    // קראו את מספר התלמידים
    val n = readLine()!!.toInt()
    
    // קראו את שמות התלמידים לתוך רשימה
    val students = mutableListOf<String>()
    for (i in 1..n) {
        students.add(readLine()!!)
    }
    
    // TODO: כתבו את הקוד שלכם למטה
    // השתמשו ב-withIndex() כדי לעבור על students ולהדפיס את הדירוג של כל תלמיד
    // זכרו: withIndex() מחזירה אינדקסים שמתחילים ב-0, אבל הדירוגים צריכים להתחיל ב-1
    
}
quiz iconבחנו את עצמכם

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

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

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