Menu
CoddyTech

לולאה מקוננת

חלק מהיחידה יסודות במסלול ה-Kotlin של Coddy. שיעור 52 מתוך 93.

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

val rows = 2
val cols = 3
for (i in 1..rows) {
    for (j in 1..cols) {
        println("i=$i, j=$j")
    }
}
// פלט:
// i=1, j=1
// i=1, j=2
// i=1, j=3
// i=2, j=1
// i=2, j=2
// i=2, j=3

כאשר i הוא 1, הלולאה הפנימית רצה cols פעמים (j נע מ-1 עד 3). לאחר מכן i הופך ל-2, והלולאה הפנימית מתחילה מחדש, כאשר j נע שוב מ-1 עד 3. כך מתקבלות בסך הכול 2 × 3 = 6 איטרציות. rows ו-cols לעולם אינם משתנים: הם רק אומרים ללולאות מתי לעצור.

לולאות מקוננות משמשות לעיתים קרובות ליצירת תבניות או לעבודה עם מבנים דמויי רשת:

for (row in 1..3) {
    for (col in 1..row) {
        print("*")
    }
    println()
}
// פלט:
// *
// **
// ***

כאן, הטווח של הלולאה הפנימית תלוי במשתנה של הלולאה החיצונית, וכך נוצר דפוס של משולש. הפונקציה print() מציגה פלט ללא ירידת שורה, ואילו println() עוברת לשורה הבאה אחרי כל שורה.

challenge icon

אתגר

בינוני

קרא מספר שלם n מהקלט. השתמש בלולאות מקוננות כדי להדפיס לוח כפל עבור המספרים מ־1 עד n.

עבור כל שורה i מ־1 עד n, הדפס את המכפלות i * 1, i * 2, ..., i * n כשהן מופרדות ברווחים, ואחריהן ירידת שורה.

לדוגמה, אם הקלט הוא 3, הפלט צריך להיות:

1 2 3
2 4 6
3 6 9

אם הקלט הוא 4, הפלט צריך להיות:

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

השתמש ב־print() עם רווח כדי להדפיס ערכים באותה שורה, וב־println() כדי לעבור לשורה הבאה.

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

נסו בעצמכם

fun main() {
    // קראו את הקלט
    val n = readLine()!!.toInt()
    
    // TODO: כתבו את הקוד שלכם למטה
    // השתמשו בלולאות מקוננות כדי להדפיס את לוח הכפל
    // השתמשו ב-print() עם רווח בין הערכים באותה שורה
    // השתמשו ב-println() כדי לעבור לשורה הבאה
    
}
quiz iconבחנו את עצמכם

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

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

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