Menu
Coddy logo textTech

לולאה מקוננת

חלק מהיחידה יסודות במסלול ה-Swift של Coddy. שיעור 49 מתוך 86.

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

for row in 1...3 {
    for col in 1...2 {
        print("Row \(row), Col \(col)")
    }
}
// פלט:
// Row 1, Col 1
// Row 1, Col 2
// Row 2, Col 1
// Row 2, Col 2
// Row 3, Col 1
// Row 3, Col 2

עבור כל ערך של row, הלולאה הפנימית עוברת על כל הערכים של col עד סופם. לכן, עם 3 איטרציות חיצוניות ו-2 איטרציות פנימיות, הקוד שבפנים רץ בסך הכול 6 פעמים (3 × 2).

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

הנה דוגמה שמדפיסה מלבן פשוט של כוכביות:

for row in 1...2 {
    for col in 1...4 {
        print("*", terminator: "")
    }
    print("")  // עבור לשורה הבאה
}
// פלט:
// ****
// ****

ה־terminator: "" מונע מ־print להוסיף שורה חדשה, כך שהכוכביות מופיעות באותה שורה. לאחר שהלולאה הפנימית מסתיימת, print("") עובר לשורה הבאה.

challenge icon

אתגר

קל

קרא שני מספרים שלמים מהקלט: rows ו-cols. השתמש בלולאות מקוננות כדי להדפיס טבלת מספרים, שבה כל תא מציג את המכפלה של מספר השורה שלו במספר העמודה שלו.

הקלט יכיל את הערכים הבאים:

  • השורה הראשונה: מספר השורות (למשל, "3")
  • השורה השנייה: מספר העמודות (למשל, "4")

דרישות:

  • השתמש בלולאה חיצונית עבור השורות (מ-1 עד rows)
  • השתמש בלולאה פנימית עבור העמודות (מ-1 עד cols)
  • הדפס את המכפלה של מספר השורה ומספר העמודה הנוכחיים
  • הפרד בין הערכים באותה שורה באמצעות רווח
  • כל שורה צריכה להופיע בשורה נפרדת

רמז: השתמש ב-terminator: " " כדי להשאיר את הערכים באותה שורה, ואז השתמש ב-print("") אחרי הלולאה הפנימית כדי לעבור לשורה הבאה.

לדוגמה, אם rows הוא 3 ו-cols הוא 4, הפלט צריך להיות:

1 2 3 4 
2 4 6 8 
3 6 9 12 

נסו בעצמכם

let rows = Int(readLine()!)!
let cols = Int(readLine()!)!

// TODO: כתבו את הקוד שלכם למטה
// השתמשו בלולאות מקוננות כדי להדפיס לוח כפל
// לולאה חיצונית: עברו על השורות (מ-1 עד rows)
// לולאה פנימית: עברו על העמודות (מ-1 עד cols)
// הדפיסו את המכפלה של row * column
// השתמשו ב-print(..., terminator: " ") כדי להשאיר את הערכים באותה שורה
// השתמשו ב-print("") אחרי הלולאה הפנימית כדי לעבור לשורה הבאה
quiz iconבחנו את עצמכם

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

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

תרגלו בעצמכם: Swift אונליין