recent
أخبار ساخنة

الحلقات المتداخلة Nested Loops في البرمجة مع أمثلة عملية

الحلقات المتداخلة ( Nested Loops )

الحلقات المتداخلة (Nested Loops) في البرمجة

تُعتبر الحلقات المتداخلة (Nested Loops) من المفاهيم المهمة في البرمجة، وهي عبارة عن وضع حلقة تكرار داخل حلقة تكرار أخرى. تُستخدم هذه التقنية عندما نحتاج إلى تنفيذ عمليات متكررة ضمن عمليات متكررة أخرى، مثل التعامل مع الجداول، والمصفوفات متعددة الأبعاد، أو رسم الأشكال والأنماط المختلفة.

تتوفر الحلقات المتداخلة في جميع لغات البرمجة تقريبًا مثل JavaScript وPython وJava وC++، وتُعد أداة قوية لتنفيذ المهام المعقدة بطريقة منظمة.

ما هي الحلقات المتداخلة؟

الحلقة المتداخلة هي ببساطة:

حلقة خارجية
    └── حلقة داخلية

عند تنفيذ الحلقة الخارجية مرة واحدة، تقوم الحلقة الداخلية بتنفيذ جميع دوراتها بالكامل قبل أن تنتقل الحلقة الخارجية إلى الدورة التالية.

الشكل العام للحلقات المتداخلة مثال باستخدام حلقتين for

for(let i = 1; i <= 3; i++) {

    for(let j = 1; j <= 2; j++) {

        console.log(i, j);

    }

}

كيف تعمل؟

  1. الدورة الأولى للحلقة الخارجية i = 1
  2. الحلقة الداخلية تنفذ: j = 1 j = 2
  3. الدورة الثانية i = 2
  4. الحلقة الداخلية تعيد التنفيذ: j = 1 j = 2

وهكذا حتى تنتهي الحلقة الخارجية.

مثال عملي: إنشاء جدول ضرب

for(let i = 1; i <= 5; i++) {

    for(let j = 1; j <= 5; j++) {

        console.log(i + " × " + j + " = " + (i * j));

    }

}

جزء من النتيجة

1 × 1 = 1
1 × 2 = 2
1 × 3 = 3

2 × 1 = 2
2 × 2 = 4
2 × 3 = 6

مثال: طباعة شبكة أرقام

for(let row = 1; row <= 3; row++) {

    let line = "";

    for(let col = 1; col <= 5; col++) {

        line += col + " ";

    }

    console.log(line);

}

النتيجة

1 2 3 4 5
1 2 3 4 5
1 2 3 4 5

رسم مربع باستخدام النجوم

for(let i = 1; i <= 5; i++) {

    let stars = "";

    for(let j = 1; j <= 5; j++) {

        stars += "* ";

    }

    console.log(stars);

}

النتيجة

* * * * *
* * * * *
* * * * *
* * * * *
* * * * *

رسم مثلث بالنجوم

for(let i = 1; i <= 5; i++) {

    let stars = "";

    for(let j = 1; j <= i; j++) {

        stars += "* ";

    }

    console.log(stars);

}

النتيجة

*
* *
* * *
* * * *
* * * * *

الحلقات المتداخلة مع المصفوفات

تُستخدم كثيرًا عند التعامل مع المصفوفات ثنائية الأبعاد.

let matrix = [
    [1,2,3],
    [4,5,6],
    [7,8,9]
];

for(let i = 0; i < matrix.length; i++) {

    for(let j = 0; j < matrix[i].length; j++) {

        console.log(matrix[i][j]);

    }

}

النتيجة

1
2
3
4
5
6
7
8
9

مثال: عرض الطلاب ودرجاتهم

let students = [
    ["أحمد", 90],
    ["محمد", 85],
    ["علي", 95]
];

for(let i = 0; i < students.length; i++) {

    for(let j = 0; j < students[i].length; j++) {

        console.log(students[i][j]);

    }

}

استخدام While داخل While

يمكن أيضًا استخدام حلقات while بشكل متداخل.

let i = 1;

while(i <= 3) {

    let j = 1;

    while(j <= 3) {

        console.log(i, j);
        j++;

    }

    i++;

}

استخدام Do While داخل Do While

let i = 1;

do {

    let j = 1;

    do {

        console.log(i, j);
        j++;

    } while(j <= 2);

    i++;

} while(i <= 3);

متى نستخدم الحلقات المتداخلة؟

تُستخدم في:

  1. إنشاء جداول الضرب. 
  2. رسم الأشكال والأنماط. 
  3. معالجة المصفوفات متعددة الأبعاد.
  4.  الألعاب الإلكترونية. 
  5. التعامل مع الصفوف والأعمدة في قواعد البيانات.
  6.  إنشاء الجداول والتقارير.

ملاحظات مهمة

1. كلما زاد عدد الحلقات زاد عدد التكرارات 

for(let i=1; i<=100; i++) {
    for(let j=1; j<=100; j++) {

    }
}

سيتم تنفيذ الحلقة الداخلية: 100 × 100 = 10000 مرة

2. انتبه للأداء الحلقات المتداخلة الكبيرة قد تؤثر على سرعة البرنامج إذا كانت البيانات ضخمة.

3. استخدم أسماء متغيرات واضحة row - column - student - grade بدلًا من استخدام متغيرات غير واضحة..

الفرق بين الحلقة العادية والمتداخلة

الحلقة العادية تحتوي على حلقة واحدة الحلقة المتداخلة تحتوي على حلقة داخل أخرى

الحلقة العادية مناسبة للتكرار البسيط الحلقة المتداخلة مناسبة للبيانات والجداول المعقدة

الحلقة العادية عدد التكرارات أقل الحلقة المتداخلة عدد التكرارات أكبر

تُعد الحلقات المتداخلة (Nested Loops) من الأدوات القوية في البرمجة، حيث تسمح بتنفيذ عمليات متكررة داخل عمليات أخرى، مما يجعلها مثالية للتعامل مع الجداول والمصفوفات متعددة الأبعاد ورسم الأنماط المختلفة. وعلى الرغم من سهولة مفهومها، فإن استخدامها بشكل صحيح يتطلب الانتباه إلى الأداء وعدد التكرارات. وإتقان الحلقات المتداخلة يُعد خطوة مهمة نحو بناء برامج أكثر احترافية وكفاءة.

google-playkhamsatmostaqltradentX