التكرار المتداخل
مُقدَّم| 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-A بالترتيب.
تتبع الترتيب
- تنتهي الحلقة الداخلية بجميع دوراتها، ثم تأخذ الحلقة الخارجية خطوة واحدة.
- الخارجية
r=0: داخليةc=0,1,2؛ الخارجيةr=1: داخليةc=0,1,2؛ وهكذا. - أعد ضبط أي عداد داخلي في بداية كل دورة خارجية.
- تابع ببطء — الخلط بين أي حلقة تتقدم هو خطأ شائع.
راقب المتغير الداخلي
- أعلن عداد الحلقة الداخلية داخل الحلقة أو أعد ضبطه في كل دورة خارجية.
- إذا أعدت استخدام متغير خارجي في الشرط الداخلي، راقب التداخل.
- يجب أن يكون العدادان الداخلي والخارجي مستقلين إلا إذا كنت تقصد غير ذلك.
- نمط المثلث (
cمن0إلىr) يجعل العداد الداخلي يعتمد على الخارجي.
في الحلقات المتداخلة، تتكرر الحلقة الداخلية FULLY لكل دورة خارجية واحدة. لذلك يعمل جسم الحلقة 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
لهذا يعمل جسم الحلقة الداخلية عدد مرات (الخارجية × الداخلية).
بالنسبة لمصفوفة ثنائية الأبعاد 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.
إعلان العداد الداخلي في رأس for الداخلي يعيد تعيينه في كل مرّة خارجية.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
int جديد i في الرأس الداخلي يعيد تشغيله في كل مرة.