לולאות for
לולאת for היא כלי חיוני שמאפשר לנו להריץ קטעי קוד מספר פעמים.
הלולאה מיועדת בעיקר למקרים שבהם יודעים מראש כמה פעמים צריך להריץ את הקוד.
דוגמאות:
קליטת 10 ציונים מתלמיד, לחישוב ממוצע ציונים.
קליטת גובה של כל אחד מ 32 תלמידים, לחישוב גובה ממוצע.
כמובן, מספר הפעמים שנרצה להריץ את הקוד יכול להיות מיוצג על ידי משתנה. לדו':
קליטת מחירים ל cnt בגדים, לחישוב סכום הקניה.
מבנה הלולאה
לולאת for מורכבת משלושה חלקים עיקריים:
// מבנה הכותרת:
for (אתחול; תנאי; עדכון)
{
// קוד שירוץ בתוך הלולאה
}אתחול: קובע את ערך ההתחלה של משתנה הספירה-אינדקס הלולאה (בדרך כלל משתנה מסוג int), למשל,
int i = 0.
תנאי: קובע מתי לעצור את הלולאה. כל עוד התנאי מתקיים, הלולאה תמשיך לרוץ. למשל, i < 10.
עדכון: מתבצע בסוף כל איטרציה, ומעדכן את ערך המשתנה. למשל, i++ מעלה את ערך המשתנה i באחד אחרי כל איטרציה.
דוגמה בסיסית
לולאה זו תדפיס את המספרים מ-0 עד 9:
for (int i = 0; i < 10; i++)
{
Console.WriteLine(i);
}הסבר הדוגמה
1. אתחול - int i = 0 : מגדירים את המשתנה i עם ערך התחלתי של 0.
2. תנאי - i < 10 : כל עוד i קטן מ-10, הלולאה תמשיך לרוץ.
3. עדכון - i++ : מעלה את i ב-1 לאחר כל סבב של הלולאה.
דגשים חשובים:
• כאשר הקוד בתוך הלולאה יכלול יותר משורה אחת, נצטרך להקיף ב {}
• בין שלושת חלקי הלולאה יש לשים ; (בין אתחול;תנאי;עדכון)
• בסוף שורת הלולאה לא יבוא ;
• ניתן לוותר על החלק הראשון והשלישי של הלולאה (אתחול ועדכון) ולשים במקומם ; במקרה כזה יש לבצע אתחול לפני הלולאה ועדכון בתוך הלולאה (אחרת תיווצר לולאה אינסופית)
• אינדקס הלולאה יהיה מטיפוס int/char
• משתנה שיוגדר בתוך הלולאה-לא יוכר מחוץ ללולאה. (לא נוכל להשתמש בו מחוץ ללולאה)
גבול תחתון וגבול עליון
ערכים המגדירים את טווח הריצה של הלולאה. הגבולות קובעים באילו ערכים הלולאה תתחיל (גבול תחתון) ומתי היא תעצור (גבול עליון).
דוגמה כללית
בדוגמה הבסיסית הבאה:
for (int i = 0; i < 10; i++)
{
Console.WriteLine(i);
}גבול תחתון: 0-זהו הערך ההתחלתי של המשתנה i שבו הלולאה מתחילה.
גבול עליון: 10-הלולאה תמשיך לרוץ כל עוד התנאי i < 10 מתקיים. ברגע שהמשתנה i מגיע ל- 10, הלולאה תיפסק.
מדוע זה חשוב?
בחירת הגבול העליון והתחתון משפיעה על מספר הפעמים שהלולאה רצה. לדוגמה, שינוי הגבול התחתון ל-1 והעליון ל-5 יגרום ללולאה לרוץ ארבע פעמים בלבד, עם ערכים של i מ-1 עד 4.
שימי לב:
הגבול התחתון < מהגבול העליון
במקרה הנפוץ שבו הגבול התחתון קטן מהעליון, הלולאה תתחיל מהערך התחתון ותגדל בכל איטרציה עד שתגיע לגבול העליון.
הגבול התחתון > מהגבול העליון
אם הגבול התחתון גדול מהעליון והלולאה משתמשת בתנאי סטנדרטי של < היא לא תיכנס לפעולה כלל כי התנאי לא מתקיים.
הגבול התחתון = לגבול העליון
במצב שבו הגבול התחתון שווה לעליון, הלולאה תלויה בתנאי:
• אם התנאי משתמש ב < הלולאה לא תרוץ כלל כי התנאי לא מתקיים, לדו':
for (int i = 5; i < 5; i++)• אם התנאי משתמש ב =< הלולאה תרוץ פעם אחת בלבד, כיוון שהערך של i מתחיל ומסיים בדיוק בגבול. לדו': for (int i = 5; i <= 5; i++)