לולאות מקוננות
חלק מהיחידה יסודות במסלול ה-C של Coddy. שיעור 43 מתוך 63.
לולאות מקוננות הן לולאות שממוקמות בתוך לולאה אחרת. בכל איטרציה של הלולאה החיצונית, הלולאה הפנימית מתבצעת במלואה.
צרו לולאה חיצונית שרצה 3 פעמים:
for (int i = 0; i < 2; i++) {
// הקוד של הלולאה החיצונית כאן
}הוסף לולאה פנימית שרצה 3 פעמים בכל איטרציה של הלולאה החיצונית:
int rows = 2;
int cols = 3;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d,%d ", i, j);
}
printf("\n");
}הפלט יהיה:
0,0 0,1 0,2
1,0 1,1 1,2 שימו לב שהלולאה הפנימית משלימה את האיטרציות שלה לפני שהלולאה החיצונית עוברת לאיטרציה הבאה שלה. לכל לולאה יש מונה משלה: j מתחיל שוב מ־0 בכל פעם שהלולאה החיצונית רצה, ואילו rows ו־cols נשארים ללא שינוי ורק אומרים ללולאות מתי לעצור.
אתגר
קלצרו תוכנית שמדפיסה תבנית מלבנית של כוכביות (*) בהתאם למספר השורות והעמודות שהמשתמש סיפק.
התוכנית שלכם צריכה:
- לקרוא מהמשתמש שני מספרים שלמים: שורות ועמודות.
- להשתמש בלולאות מקוננות כדי להדפיס תבנית מלבנית של כוכביות, שבה הלולאה החיצונית מטפלת בשורות והלולאה הפנימית מטפלת בעמודות.
- להדפיס ירידת שורה אחרי כל שורה.
לדוגמה, אם הקלט הוא 3 שורות ו-4 עמודות, הפלט צריך להיות:
****
****
****השתמשו במונה חדש לכל לולאה (לדוגמה i עבור השורות ו-j עבור הכוכביות בשורה) והשוו אותו ל-rows או ל-columns. אל תשנו את rows ואת columns עצמם: כל שורה צריכה שוב columns.
נסו בעצמכם
#include <stdio.h>
int main() {
int rows, columns;
scanf("%d", &rows);
scanf("%d", &columns);
// כתבו כאן את הקוד שלכם כדי להדפיס את התבנית
return 0;
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
תרגלו בעצמכם: קומפיילר C אונליין