Menu
CoddyTech

לולאה מקוננת

חלק מהיחידה יסודות במסלול ה-C# של Coddy. שיעור 46 מתוך 69.

לולאה מקוננת היא פשוט לולאה בתוך לולאה אחרת. הלולאה הפנימית תשלים את כל האיטרציות שלה בכל איטרציה יחידה של הלולאה החיצונית.

הקבלה טובה לכך היא שעון: עבור כל שעה (הלולאה החיצונית), מחוג הדקות (הלולאה הפנימית) חייב להשלים את מחזור 60 הדקות המלא שלו.

דוגמה ללולאה מקוננת:

int rows = 2;
int cols = 2;
for (int x = 0; x < rows; x++) {
	for (int y = 0; y < cols; y++) {
		Console.WriteLine(x + " " + y);
	}
}

// הפלט יהיה:
// 0 0
// 0 1
// 1 0
// 1 1

הלולאה החיצונית (x) רצה rows פעמים, ובכל אחת מהפעמים האלה הלולאה הפנימית (y) רצה cols פעמים, כלומר גוף הלולאה הפנימית מתבצע בסך הכול 2 × 2 = 4 פעמים. לכל לולאה יש מונה משלה: y מתחיל שוב מ־0 בכל פעם שהלולאה החיצונית רצה, ואילו rows ו־cols נשארים ללא שינוי ורק מציינים ללולאות מתי לעצור.

ייתכן שתצטרכו גם את Console.Write() כשעובדים עם לולאות מקוננות. בניגוד ל־Console.WriteLine(), שמדפיסה טקסט ועוברת לשורה חדשה, Console.Write() מדפיסה טקסט בלי להוסיף מעבר לשורה חדשה בסוף. כך תוכלו לבנות פלט באותה שורה:

for (int y = 0; y < 4; y++) {
	Console.Write("* ");
}
Console.WriteLine();

// הפלט יהיה:
// * * * * 

כאן, Console.Write() ממשיכה להדפיס באותה שורה, ו-Console.WriteLine() שבסוף עוברת לשורה הבאה.

challenge icon

אתגר

מתחילים

כתבו תוכנית שמדפיסה מלבן של כוכביות (*) ברוחב ובגובה נתונים.

קלט: שני מספרים שלמים: width ו-height

לדוגמה:

אם width = 5 ו-height = 3, הפלט אמור להיות:

*****
*****
*****

אם width = 4 ו-height = 6, הפלט אמור להיות:

****
****
****
****
****
****

השתמשו במונה חדש לכל לולאה (לדוגמה, i עבור השורות ו-j עבור הכוכביות בשורה), והשוו אותו ל-height או ל-width. אל תשנו את height ואת width עצמם: כל שורה זקוקה שוב ל-width.

נסו בעצמכם

using System;

public class Program {
    public static void Main(string[] args) {
        int width = int.Parse(Console.ReadLine());
        int height = int.Parse(Console.ReadLine());
        // כתבו את הקוד שלכם למטה

    }
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר C# אונליין