Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

الحلقات المتداخلة

جزء من قسم Fundamentals في رحلة C# على Coddy — الدرس 46 من 69.

الحلقة المتداخلة هي ببساطة حلقة داخل حلقة أخرى. ستكمل الحلقة الداخلية جميع تكراراتها لكل تكرار واحد للحلقة الخارجية.

التشبيه الجيد لهذا هو الساعة: فلكل ساعة (الحلقة الخارجية)، يجب على عقرب الدقائق (الحلقة الداخلية) إكمال دورته الكاملة المكونة من 60 دقيقة.

مثال على حلقة متداخلة:

for (int x = 0; x < 2; x++) {
	for (int y = 0; y < 2; y++) {
		Console.WriteLine(x + " " + y);
	}
}

// سيقوم هذا بطباعة:
// 0 0
// 0 1
// 1 0
// 1 1

تعمل الحلقة الخارجية (x) مرتين، وفي كل مرة من تلك المرات، تعمل الحلقة الداخلية (y) أيضاً مرتين — مما يعطينا 4 أسطر من المخرجات في المجمل.

في المثال أعلاه، يقوم Console.WriteLine() بطباعة كل نتيجة في سطر جديد.
إذا كنت تريد الطباعة دون الانتقال إلى سطر جديد، استخدم Console.Write() بدلاً من ذلك:

Console.Write("Hello ");
Console.Write("World");
// المخرجات: Hello World

كلتا الطريقتين مفيدتان — يضيف Console.WriteLine() سطراً جديداً في النهاية، بينما يبقي Console.Write() المؤشر على نفس السطر.

challenge icon

التحدي

مبتدئ

اكتب برنامجًا يطبع مستطيلاً من النجوم (*) بعرض وارتفاع محددين.

المدخلات: عددان صحيحان: width و height

على سبيل المثال:

إذا كان width = 5 و height = 3، يجب أن تكون المخرجات:

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

إذا كان width = 4 و height = 6، يجب أن تكون المخرجات:

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

ورقة مرجعية

الحلقة المتداخلة (nested loop) هي حلقة داخل حلقة أخرى. تُكمل الحلقة الداخلية جميع تكراراتها لكل تكرار واحد من الحلقة الخارجية.

مثال على الحلقات المتداخلة:

for (int x = 0; x < 2; x++) {
	for (int y = 0; y < 2; y++) {
		Console.WriteLine(x + " " + y);
	}
}

// المخرجات:
// 0 0
// 0 1
// 1 0
// 1 1

تعمل الحلقة الخارجية مرتين، ومع كل تكرار، تعمل الحلقة الداخلية مرتين بشكل كامل.

طباعة المخرجات:
تطبع Console.WriteLine() قيمة وتنتقل إلى سطر جديد.
تطبع Console.Write() قيمة دون الانتقال إلى سطر جديد، لذا تستمر المخرجات التالية في نفس السطر.

جرّب بنفسك

using System;

public class Program {
    public static void Main(string[] args) {
        int width = int.Parse(Console.ReadLine());
        int height = int.Parse(Console.ReadLine());
        // اكتب الكود الخاص بك أدناه

    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Fundamentals