Menu
Coddy logo textTech

איטרציה באמצעות ipairs()

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

בעוד pairs() פועלת עם כל מבנה של טבלה, Lua מספקת פונקציה ייעודית בשם ipairs(), שתוכננה במיוחד עבור טבלאות בסגנון רשימה. הפונקציה הזו עוברת על הטבלאות לפי הסדר הרציף, החל באינדקס 1 וממשיכה עד שהיא נתקלת בערך nil.

התחביר של ipairs() דומה לזה של pairs():

for index, value in ipairs(myList) do
    -- השתמשו כאן ב-index וב-value
end

הנה דוגמה עם רשימה של פריטי משימה:

local questItems = {"Map", "Compass", "Torch", "Rope"}

for i, item in ipairs(questItems) do
    print(i .. ". " .. item)
end

פלט:

1. Map
2. Compass
3. Torch
4. Rope

ההבדל העיקרי מ־pairs() הוא ש־ipairs() נעצרת מיד כשהיא מוצאת ערך nil, גם אם יש אחריו איברים נוספים.

challenge icon

אתגר

קל

כתבו פונקציה listTasks שמקבלת טבלה tasks ומחזירה מחרוזת מעוצבת שמציגה את כל המשימות עם מספרי המיקום שלהן.

השתמשו ב־ipairs() כדי לעבור על המשימות לפי הסדר ולבנות מחרוזת שבה כל שורה מציגה את מספר המשימה ואחריו את שם המשימה בפורמט number. task. כל משימה צריכה להופיע בשורה נפרדת.

פרמטרים:

  • tasks (table): טבלה בסגנון רשימה שמכילה שמות של משימות כמחרוזות

ערך מוחזר: מחרוזת שבה כל משימה ממוספרת ומופיעה בשורה נפרדת. פורמט: 

1. task1
2. task2
3. task3

נסו בעצמכם

function listTasks(tasks)
    -- כתבו כאן קוד
end
quiz iconבחנו את עצמכם

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

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

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