לולאה מקוננת
חלק מהיחידה יסודות במסלול ה-GDScript של Coddy. שיעור 49 מתוך 92.
לולאה מקוננת היא לולאה בתוך לולאה אחרת. בכל איטרציה של הלולאה החיצונית, הלולאה הפנימית מבצעת את כל האיטרציות שלה:
for i in range(3):
print("Outer: ", i)
for j in range(2):
print(" Inner: ", j)Outer: 0
Inner: 0
Inner: 1
Outer: 1
Inner: 0
Inner: 1
Outer: 2
Inner: 0
Inner: 1הבלוק הפנימי מוזח בשתי רמות. הוא פועל בסך הכול 3 x 2 = 6 פעמים.
לשתי הלולאות דרושים שמות משתנים שונים. כתיבת for i בתוך for i אחר היא שגיאה, שמדווחים עליה לפני שהתוכנית רצה.
לולאות מקוננות שימושיות לעבודה עם שורות ועמודות. print() תמיד מסיימת את השורה, לכן כדי להדפיס שורה של כוכביות, בנה אותה תחילה במחרוזת והדפס אותה לאחר שהלולאה הפנימית מסתיימת:
for row in range(2):
var line := ""
for col in range(3):
line += "*"
print(line)***
***הלולאה החיצונית רצה פעם אחת בכל שורה, והלולאה הפנימית מוסיפה כוכב אחד בכל עמודה. פקודת break בתוך הלולאה הפנימית עוצרת רק את הלולאה הפנימית: הלולאה החיצונית ממשיכה לאיטרציה הבאה שלה.
אתגר
קלהתוכנית קוראת שני מספרים שלמים: rows ו־cols.
השתמש בלולאות מקוננות כדי להדפיס מלבן של כוכביות (*) עם rows שורות ו־cols כוכביות בכל שורה.
עבור הקלטים 3 ו־4, הפלט הוא:
****
****
****נסו בעצמכם
extends Node
func _ready():
var rows := int(OS.read_string_from_stdin())
var cols := int(OS.read_string_from_stdin())
# לולאה חיצונית: איטרציה אחת לכל שורה
# לולאה פנימית: הוסיפו כוכבית אחת לכל עמודה
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורים חלק 1
אופרטורים אריתמטייםחלוקה שלמהאופרטור מודולוקיצורי דרך אריתמטייםסיכום – חשבון פשוטאופרטורי השוואהתרגלו בעצמכם: קומפיילר GDScript אונליין