לולאת while
חלק מהיחידה יסודות במסלול ה-Lua של Coddy. שיעור 71 מתוך 90.
לפעמים צריך לחזור על קוד בלי לדעת מראש כמה פעמים, למשל עד שנגמרים לשחקן החיים. לולאת while מתאימה בדיוק לכך: היא ממשיכה להריץ את אותו הקוד שוב ושוב כל עוד תנאי נשאר true.
התחביר הבסיסי של לולאת while נראה כך:
while condition do
-- קוד שיש לחזור עליו
endהנה דוגמה פשוטה שמדפיסה מספרים מ־1 עד 3:
local count = 1
while count <= 3 do
print(count)
count = count + 1
endהלולאה הזו פועלת כך: תחילה היא בודקת אם count <= 3 נכון. אם כן, הקוד שבתוכה רץ, מדפיס את המספר הנוכחי ומגדיל את המונה. לאחר מכן היא בודקת שוב את התנאי, והתהליך חוזר על עצמו עד שהתנאי נעשה שקרי.
אתגר
קלצרו מערכת לניטור בריאות שמשתמשת בלולאת while כדי לעקוב אחר תהליך ההתאוששות של שחקן. התחילו ביצירת משתנה בשם playerHealth והקצו לו את הערך 25. לאחר מכן צרו משתנה נוסף בשם maxHealth והקצו לו את הערך 100.
כתבו לולאת while שנמשכת כל עוד בריאות השחקן נמוכה מהבריאות המרבית שלו. בתוך הלולאה, הדפיסו תחילה את ערך הבריאות הנוכחי, ולאחר מכן הגדילו את playerHealth ב-15. מכיוון שההדפסה מתבצעת לפני ההגדלה, הערך האחרון שיודפס יהיה 85: תנאי הלולאה נבדק שוב לאחר ההוספה של 15 (וכך playerHealth שווה ל-100), ומכיוון ש-100 אינו קטן מ-maxHealth, הלולאה נעצרת בלי להדפיס את 100.
הפלט הצפוי הוא:2540557085
נסו בעצמכם
-- אתחלו את בריאות השחקן ואת הבריאות המרבית
local playerHealth = 25
local maxHealth = 100
-- TODO: כתבו את הקוד שלכם כאן
-- צרו לולאת while שתמשיך כל עוד playerHealth < maxHealth
-- בתוך הלולאה: הדפיסו את הבריאות הנוכחית, ואז הגדילו את playerHealth ב-15השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורים 2: יחסים ולוגיקה
אופרטורי שוויוןאופרטורים יחסייםהאופרטור 'and'האופרטור 'or'האופרטור 'not'הערכה בקצר חשמליערכים אמתיים ושקרייםסיכום – לוגיקה פשוטה10טבלאות חלק 1: בסגנון רשימה
מהי טבלה?יצירת טבלהגישה לאיברים לפי אינדקסשינוי איברים לפי אינדקסאופרטור האורך '#'table.insert()table.remove()סיכום - ניהול חברי החבורה13פרויקט: חנות שיקויים פשוטה
הגדרת הפרויקטהוספת שיקוי2משתנים וסוגי נתונים
מהו משתנה?מספריםמחרוזותערכים בוליאנייםהערך 'nil'הפונקציה type()מוסכמות למתן שמותסיכום – פרופיל דמות5פלט בסיסי
הדפסת ערכים מילולייםהדפסת משתניםהדפסת ערכים מרוביםשילוב מחרוזות ומשתניםהפונקציה tostring()קלטהמרת טיפוסיםסיכום – דוח מצבסיכום – עד 1208יסודות עיבוד מחרוזות
string.len()string.upper ו־string.lowerstring.sub()string.rep()string.find()חזרה – עיצוב שם משתמש3אופרטורים 1: חשבון ושרשור
אופרטורים אריתמטייםאופרטור מודולואופרטור חזקהשרשור מחרוזותקדימות אופרטוריםסיכום – חישובים פשוטים9יסודות הפונקציות
הגדרת פונקציהקריאה לפונקציהפונקציות עם פרמטריםפונקציות עם כמה פרמטריםהפקודה 'return'סיכום – מחשבון שטח12יסודות הלולאות
לולאת whileלולאת repeat-untilלולאת for מספריתלולאת for עם צעדהפקודה 'break'סיכום – ספירה לאחורתרגלו בעצמכם: קומפיילר Lua אונליין