הלולאה היא מרכיב נפוץ בכל שפות התכנות. לדלפי יש שלוש מבני בקרה שמבצעים שוב ושוב בלוקים של קוד: עבור, חזור... עד ותוך... לעשות.
לולאת FOR
נניח שאנחנו צריכים לחזור על פעולה מספר קבוע של פעמים.
// הצג 1,2,3,4,5 תיבות הודעה
var j: מספר שלם;
התחל
ל j: = 1 ל 5 לעשות
התחל
ShowMessage ('Box:' + IntToStr (j));
סוף;
סוף;
הערך של משתנה בקרה (j), שהוא באמת רק מונה, קובע כמה פעמים פועלת הצהרה. מילת המפתח להגדרת דלפק. בדוגמה הקודמת, ערך ההתחלה של הדלפק מוגדר ל- 1. ערך הסיום מוגדר ל -5.
כאשר הצהרת ה- for מתחיל לרוץ משתנה הדלפק מוגדר לערך ההתחלה. דלפי מאשר בודק אם הערך של הדלפק הוא פחות מערך הסיום. אם הערך גדול יותר, לא נעשה דבר (ביצוע התוכנית קופץ לשורת הקוד מייד לאחר חסימת קוד הלולאה). אם ערך ההתחלה נמוך מערך הסיום, גוף הלולאה מבוצע (כאן: תיבת ההודעה מוצגת). לבסוף, דלפי מוסיף 1 לדלפק ומתחיל את התהליך מחדש.
לפעמים יש צורך לספור לאחור. ה עד ל מילת מפתח מציינת שצריך להפחית את ערך הדלפק על ידי אחד בכל פעם שהלולאה מבצעת (לא ניתן לציין תוספת / צמצום שאינו אחד). דוגמה לולאה for אשר סופרת לאחור.
var j: מספר שלם;
התחל
ל j: = 5 עד ל 1 לעשות
התחל
ShowMessage ('T מינוס' + IntToStr (j) + 'שניות');
סוף;
ShowMessage ('עבור ביצוע רצף!');
סוף;
הערה: חשוב שלעולם לא תשנה את ערך משתנה הבקרה באמצע הלולאה. פעולה זו תגרום לשגיאות.
מקוננים לולאות
כתיבת לולאה עבור לולאה אחרת (לולאות קינון) מועילה מאוד כאשר ברצונך למלא / להציג נתונים בטבלה או ברשת.
var k, j: מספר שלם;
התחל
// לולאה כפולה זו מבוצעת 4x4 = 16 פעמים
ל k: = 1 ל 4 לעשות
ל j: = 4 עד ל 1 לעשות
ShowMessage ('Box:' + IntToStr (k) + ',' + IntToStr (j));
סוף;
הכלל לקינון לולאות הבאות הוא פשוט: יש להשלים את הלולאה הפנימית (מונה j) לפני שהתקבלה ההצהרה הבאה עבור הלולאה החיצונית (דלפק k). יכולות להיות לנו לולאות מקוננות פי ארבעה או אפילו יותר.
הערה: באופן כללי מילות המפתח והסיום אינן נדרשות בהחלט, כפי שאתה יכול לראות. אם לא משתמשים בהתחלה ובסיום, ההצהרה שמיד אחרי ההצהרה נחשבת לגוף הלולאה.
לולאת ה- FOR-IN
אם ברשותך דלפי 2005 או כל גרסה חדשה יותר, אתה יכול להשתמש באיטראציה "חדשה" לסגנון אלמנט באיסוף על מכולות. הדוגמה הבאה מדגימה איטרציה על פני ביטויי מחרוזת: עבור כל תו במחרוזת בדוק אם התו הוא 'a' או 'e' או 'i'.
const
s = 'אודות תכנות דלפי';
var
c: char;
התחל
ל ג בתוך s לעשות
התחל
אם ג בתוך ['a', 'e', 'i'] לאחר מכן
התחל
// עשה משהו
סוף;
סוף;
סוף;
לולאות WHILE ו- REPEAT
לפעמים לא נדע בדיוק כמה פעמים לולאה צריכה להסתובב. מה אם נרצה לחזור על פעולה עד שנגיע למטרה ספציפית?
ההבדל החשוב ביותר בין לולאת זמן העבודה לבין לולאת החזרה-עד הוא שקוד ה- הצהרה חוזרת תמיד מבוצע לפחות פעם אחת.
התבנית הכללית כאשר אנו כותבים סוג לולאה חוזר (ובעוד) בדלפי הוא כדלקמן:
חזור
התחל
הצהרות;
סוף;
עד מצב = נכון
בזמן מצב = נכון לעשות
התחל
הצהרות;
סוף;
להלן הקוד להצגת 5 תיבות הודעה רצופות תוך שימוש חוזר עד:
var
j: מספר שלם;
התחל
j: = 0;
חזור
התחל
j: = j + 1;
ShowMessage ('Box:' + IntToStr (j));
סוף;
עד j> 5;
סוף;
כפי שאתה יכול לראות, הצהרת החזרה מעריכה מצב בסוף הלולאה (לכן לולאת החזרה מבוצעת בוודאות לפחות פעם אחת).
הצהרת זמן, לעומת זאת, מעריכה מצב בתחילת הלולאה. מכיוון שהבדיקה נעשית בחלקה העליון, בדרך כלל נצטרך לוודא כי המצב הגיוני לפני עיבוד הלולאה, אם זה לא נכון מהדר רשאי להחליט להסיר את הלולאה מהקוד.
var j: מספר שלם;
התחל
j: = 0;
בזמן j <5 לעשות
התחל
j: = j + 1;
ShowMessage ('Box:' + IntToStr (j));
סוף;
סוף;
שוברים והמשיכו
ניתן להשתמש בנהלי הפסקות והמשך כדי לשלוט על שטף ההצהרות החוזרות על עצמן: ההפסקה ההליך גורם לזרימת השליטה לצאת מהצהרה עבור, בזמן, או לחזור ולהמשיך בהמשך הצהרה בעקבות הלולאה הצהרה. המשך מאפשר לזרימת השליטה להמשיך לאיטרציה הבאה של הפעולה החוזרת.