איטרציה משובצת
הוצג| English | משמעות |
|---|---|
| nested iteration/ˈnestɪd ˌɪtəˈreɪʃn/ | איטרציה משובצת |
לולאה בתוך לולאה
- איטרציה מקוננת מכניסה לולאה אחת בתוך גוף לולאה אחרת.
- הלולאה הפנימית מתבצעת במלואה עבור כל מעבר של הלולאה החיצונית.
- הקורס החיצוני מופעל
mפעמים, הקורס הפנימי מופעלnפעמים בכל → הגוף הפנימי מתבצעm × nפעמים. - השחזור מטפל ברשתות, טבלאות ובביצוע השוואות לכל הזוגות.
שורות ועמודות
- שימוש נפוץ: קורס חיצוני עבור שורות, קורס פנימי עבור עמודות.
for (int r = 0; r < rows; r++) { for (int c = 0; c < cols; c++) { ... } }- בשביל כל שורה, הקורס הפנימי עובר על כל העמודות לפני שהחיצוני יזוז קדימה.
- זה מבקר בכל תא של רשת דו-ממדית 2 בסדר.
מעקב אחר הסדר
- הקורס הפנימי מסתיים את כל מערכי הסיבוב שלו, ולפני כן החיצוני לוקט צעד אחד.
- חיצוני
r=0: פנימיc=0,1,2; חיצוניr=1: פנימיc=0,1,2; וכך הלאה. - איפוס כל סופר פנימי בהתחלת כל מערך סיבוב חיצוני.
- לבצע מעקב לאט — התערובת בין האילו哪个 קורס זז היא טעות נפוצה.
צפה במשתנה הפנימי
- הכרז את סופר הקורס הפנימי בתוך או איפס אותו בכל מערך חיצוני.
- אם משתמש בנכס חיצוני בתנאי הפנימי, שמור על התערבות אפשרית.
- הסופרים הפנימי והחיצוני צריכים להיות עצמאיים אלא אם כוונתך אחרת.
- דגם משולש (
cמ0עדr) גורם לספירה הפנימית להסתמך על החיצונה.
בקורסים מהודקים, הקורס הפנימי מתבצע במלואו בכל מערך חיצוני. לכן הגוף הפנימי מתבצע outer × inner פעמים — מהדק 10 × 10 מופעל בגופו הפנימי 100 פעמים, ולא 20. יש לאפס את הסופר הפנימי בכל מערך חיצוני (הכרזתו בראש הפנימי for עושה זאת באופן אוטומטי), אלא אם כן המערך החיצוני השני מתחיל שם שבו הראשון נותר.
הדפסת רשת 3×3 של כוכבים:
for (int r = 0; r < 3; r++) { for (int c = 0; c < 3; c++) { print("*"); } println(); }- החיצוני מריץ
3פעמים; הפנימי מריץ3כל פעם → סך הכל9כוכבים. - כל מעבר חיצוני מדפיס שורה אחת של שלושה, ולאחר מכן ברירת שורה חדשה.
איטרציה מושתתת מכילה לולאה בתוך לולאה אחרת; ה-לולאה הפנימית רצה במלואה בכל מעבר חיצוני, כך שהגוף הפנימי מתבצע outer × inner פעמים. זוהי הדפוס עבור רשתות (חיצוני = שורות, פנימי = עמודות). יש לאפס את המונה הפנימי בכל מעבר חיצוני ולעקוב בקפדנות — הפנימה נגמרת לפני שהחיצוני מתקדם.
מחזורים משובצים סורקים רשת
המחזור החיצוני = שורות, הפנימי = עמודות; המחזור הפנימי ממלא כל שורה.
המחזור החיצוני מתבצע 3 פעמים, והפנימי מתבצע 3 פעמים בכל פעם. כמה פעמים יתבצע הגוף הפנימי?
Difficulty 2/5 · 140 coins + a small bonus on first completion today
3 × 3 = 9.
במחזורים משובצים, המחזור הפנימי מתבצע במלואו לכל מעבר בודד של המחזור החיצוני.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
זאת הסיבה לכך שהגוף הפנימי מתבצע outer × inner פעמים.
לרשת דו-ממדית 2-D, איזה לולאה מטפלת בדרך כלל בעמודות?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
חיצוני = שורות, פנימי = עמודות.
לולאה מקוננת בגודל 10 × 10 מבצעת את הגוף הפנימי שלה כמה פעמים?
Difficulty 2/5 · 140 coins + a small bonus on first completion today
10 × 10 = 100.
הצהרת המונה הפנימי בראש הלולאה הפנימה מאפס אותו בכל מעבר חיצוני.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
משתנה int i חדש בראש הפנימי מייצר התחלה מחודשת בכל פעם.