לולאה מקוננת
חלק מהיחידה יסודות במסלול ה-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() עוברת לשורה הבאה אחרי כל שורה.
אתגר
בינוניקרא מספר שלם 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() כדי לעבור לשורה הבאה
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
7קלט/פלט בסיסיים
פונקציית Printlnתבניות מחרוזתקלט באמצעות ReadLineהמרת טיפוסיםסיכום – שנים עד הפרישהסיכום – אמת או שקר10פונקציות
הכרזה על פונקציהפרמטרים וארגומנטיםערכי החזרהארגומנטים בעלי שםערכי ברירת מחדלפונקציות עם ביטוי יחידחזרה – פונקציית Sigmaחזרה – פונקציית אימות3אפשרות לערך null
מהי בטיחות מפני nullטיפוסים שיכולים להיות nullאופרטור קריאה בטוחהאופרטור אלביסיסודות אתגר הפונקציותאופרטור ההבטחה לאי־nullסיכום – גישה בטוחה9לולאות
לולאת forלולאת whileלולאת do-whilebreakcontinueטווחים בלולאותלולאה מקוננתחזרה – עצרתחזרה – קלט דינמיתרגלו בעצמכם: Kotlin אונליין