נושא 7: לולאת for
צפו בסרטון ההסבר, ואז בחרו תת־נושא לתרגול.
סיכומון תחביר נושא 7: לולאת for
מבנה הלולאה
for (int i = 0; i < 3; i++)
{
Console.WriteLine("Hi " + i);
}
Console.WriteLine("Done");
הפלט:
Hi 0
Hi 1
Hi 2
Done
בכותרת שלושה חלקים, ונקודה‑פסיק ביניהם:
- אתחול
int i = 0: מתבצע פעם אחת, בהתחלה. - תנאי
i < 3: נבדק לפני כל סבב. כשהוא לא נכון, הלולאה מסתיימת והקוד ממשיך אחריה. - קידום
i++: מתבצע בסוף כל סבב. זהה ל‑i = i + 1.
כותרות נפוצות
for (int i = 1; i <= 5; i++)מ‑1 עד 5, כולל 5.for (int i = 0; i < 10; i = i + 2)בקפיצות של 2, מ‑0 עד 8.for (int i = 5; i > 0; i--)ספירה לאחור, מ‑5 עד 1.for (int i = 0; i < n; i++)מתבצעnפעמים. אתnאפשר לקלוט מהמשתמש.
אם התנאי לא נכון כבר בבדיקה הראשונה, גוף הלולאה לא מתבצע אפילו פעם אחת.
מונה
משתנה שסופר כמה פעמים קרה משהו. מאתחלים אותו ל‑0 לפני הלולאה, מגדילים אותו ב‑1 בתוך if, ומדפיסים אותו אחרי הלולאה. count++ הוא קיצור של count = count + 1.
int n = int.Parse(Console.ReadLine());
int count = 0;
for (int i = 0; i < n; i++)
{
int x = int.Parse(Console.ReadLine());
if (x > 90)
{
count++;
}
}
Console.WriteLine(count);
סוכם וממוצע
משתנה שצובר ערכים. מאתחלים אותו ל‑0 לפני הלולאה, ומוסיפים לו בכל סבב. sum += x הוא קיצור של sum = sum + x. ממוצע הוא הסכום חלקי הכמות. כדי שהחילוק לא יהיה חילוק שלמים, מגדירים את הסוכם כ‑double.
double sum = 0;
for (int i = 0; i < n; i++)
{
int x = int.Parse(Console.ReadLine());
sum += x;
}
Console.WriteLine("Sum: " + sum);
Console.WriteLine("Average: " + sum / n);
משתנה שצובר מכפלה מאתחלים ל‑1 ולא ל‑0.
מקסימום ומינימום
max מחזיק את הערך הגדול ביותר שנקלט עד עכשיו, ו‑if מעדכן אותו כשנקלט ערך גדול ממנו. ערך ההתחלה נקבע לפי תחום הערכים: למקסימום ערך שקטן מכל קלט אפשרי, ולמינימום ערך שגדול מכל קלט אפשרי. בציונים מ‑0 עד 100 אלה 0 ו‑101.
int max = 0;
int min = 101;
for (int i = 0; i < n; i++)
{
int x = int.Parse(Console.ReadLine());
if (x > max)
{
max = x;
}
if (x < min)
{
min = x;
}
}
Console.WriteLine(max + " " + min);
כדי לזכור באיזה סבב נמצא המקסימום, שומרים בתוך ה‑if גם את i, למשל pos = i;. עם > נשמר המופע הראשון של המקסימום, ועם >= האחרון.
אתחול לפי הערך הראשון
כשתחום הערכים לא ידוע, למשל כשיש גם מספרים שליליים, קולטים את הערך הראשון לפני הלולאה ומאתחלים לפיו. הלולאה מתחילה מ‑1, כי ערך אחד כבר נקלט.
int first = int.Parse(Console.ReadLine());
int max = first;
int min = first;
for (int i = 1; i < n; i++)
{
int x = int.Parse(Console.ReadLine());
if (x > max)
{
max = x;
}
}
תרגול
-
07.1
לולאת for — for פשוט
20 רמות
לתרגול ‹
מה מתרגלים ב־לולאת for — for פשוט
- פקודת
forושלושת חלקי הכותרת שלה (אתחול, תנאי, קידום) - גוף הלולאה בסוגריים מסולסלים
- מספר החזרות של הלולאה
- קוד שממשיך אחרי סיום הלולאה
- גבול שנקלט מהמשתמש
- קלט ו‑
ifבתוך הלולאה - שימוש במשתנה
iבגוף הלולאה - התחלה ממספר שאינו 0
<=לעומת<- קידום בקפיצות וספירה לאחור
- לולאה שגופה אינו מתבצע כלל
- פקודת
-
07.2
לולאת for — for מונה
15 רמות
לתרגול ‹
מה מתרגלים ב־לולאת for — for מונה
- משתנה מונה שמאותחל ל‑0 לפני הלולאה
- הגדלת המונה ב‑1 בתוך
if - הדפסת המונה אחרי סיום הלולאה
- ספירה של קלטים שמקיימים תנאי
- ספירה של ערכי
iשמקיימים תנאי count++כקיצור שלcount = count + 1- שני מונים באותה לולאה
- מונה שמאותחל במקום הלא נכון
- שילוב מונה עם תנאי מורכב ועם שארית
-
07.3
לולאת for — for סוכם/צובר
15 רמות
לתרגול ‹
מה מתרגלים ב־לולאת for — for סוכם/צובר
- משתנה סוכם שמאותחל ל‑0 לפני הלולאה
- הוספת ערך לסוכם בכל סבב
- הדפסת הסכום אחרי סיום הלולאה
- סכום של קלטים וסכום של ערכי
i - סכום חלקי שמודפס בכל סבב
- סכום רק של ערכים שמקיימים תנאי
- חישוב ממוצע מסכום ומכמות
- חילוק שלמים בממוצע ו‑
double sum += xכקיצור שלsum = sum + x- משתנה צובר במכפלה
- שילוב סוכם עם מונה
-
07.4
לולאת for — for עם מינימום ומקסימום
17 רמות
לתרגול ‹
מה מתרגלים ב־לולאת for — for עם מינימום ומקסימום
- משתנה שמחזיק את הערך הגדול ביותר שנקלט עד עכשיו
ifשמעדכן אותו כשנקלט ערך גדול יותר- ערך התחלה למקסימום ולמינימום לפי תחום הערכים
- מינימום ומקסימום באותה לולאה
- מעקב אחרי המשתנה סבב אחר סבב
>לעומת>=כשיש ערכים שווים- ערך התחלה שגוי ומספרים שליליים
- אתחול לפי הערך הראשון שנקלט
- שמירת מספר הסבב שבו נמצא המקסימום
- שילוב מינימום ומקסימום עם מונה ועם סוכם