الحلقات المتداخلة مع المصفوفات ثنائية الأبعاد
جزء من قسم Logic & Flow في رحلة C# على Coddy — الدرس 4 من 66.
عند العمل مع المصفوفات ثنائية الأبعاد (jagged arrays) في لغة C#، غالبًا ما نستخدم الحلقات المتداخلة (nested loops) للتكرار عبر كل صف وكل عمود، مما يسمح لنا بالوصول إلى كل عنصر في المصفوفة أو تعديله.
إليك هيكل نموذجي للحلقات المتداخلة لمصفوفة ثنائية الأبعاد في C#:
for (int i = 0; i < array.Length; i++) {
// الحلقة الخارجية تمر عبر الصفوف
for (int j = 0; j < array[i].Length; j++) {
// الحلقة الداخلية تمر عبر الأعمدة
// الوصول إلى array[i][j] أو تعديله
}
}تتكرر الحلقة الخارجية عبر الصفوف، وتتكرر الحلقة الداخلية عبر أعمدة كل صف. بهذه الطريقة، يمكنك الوصول إلى كل عنصر في المصفوفة ثنائية الأبعاد باستخدام array[i][j].
التحدي
سهلprintMatrix تأخذ مصفوفة ثنائية الأبعاد (jagged array) من الأعداد الصحيحة كمعامل (argument) وتقوم بطباعة عناصرها بتنسيق مصفوفة. استخدم حلقات متداخلة (nested loops) للمرور عبر صفوف وأعمدة المصفوفة.اطبع كل عنصر متبوعاً بمسافة (بما في ذلك العنصر الأخير في كل صف)، ثم اطبع سطراً جديداً بعد كل صف. على سبيل المثال، بالنسبة للصف
[1, 2, 3]، يجب أن يكون المخرج 1 2 3 (مع مسافة زائدة في النهاية)، متبوعاً بسطر جديد.ورقة مرجعية
استخدم الحلقات المتداخلة للتكرار عبر المصفوفات ثنائية الأبعاد (المصفوفات المتعرجة - jagged arrays) في لغة C#:
for (int i = 0; i < array.Length; i++) {
// الحلقة الخارجية تمر عبر الصفوف
for (int j = 0; j < array[i].Length; j++) {
// الحلقة الداخلية تمر عبر الأعمدة
// الوصول إلى array[i][j] أو تعديله
}
}تمر الحلقة الخارجية عبر الصفوف باستخدام array.Length، وتمر الحلقة الداخلية عبر الأعمدة باستخدام array[i].Length. قم بالوصول إلى العناصر باستخدام array[i][j].
جرّب بنفسك
// اكتب كودك فقط داخل الفئة (class). لا تكتب Main() أو أي كود خارج هذه الفئة.
using System;
class PrintMatrix
{
public static void printMatrix(int[][] matrix)
{
// اكتب كودك هنا
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادتعريف وتهيئة المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفة ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادالمصفوفات المتعرجة (Jagged Arrays)عمليات المصفوفات الشائعةمراجعة - المصفوفات متعددة الأبعاد4تقنيات التحكم في التدفق
الإرجاع المبكرشروط الحمايةجمل القفز (goto)Break و Continueتسطيح الشروط المتداخلة7المعاملات المنطقية المتقدمة
التقييم المختصرالمعاملات المنطقية الشرطيةأولوية المعاملاتمراجعة - المعاملات المتقدمة2اتخاذ القرارات المتقدم
الشروط المتعددةالمنطق البولياني المعقدمقارنة بين If و Switchجمل Switch المتداخلةمراجعة - القرارات المتقدمة5معالجة الاستثناءات
أساسيات Try-Catchأنواع الاستثناءاتكتل Catch المتعددةالتعامل مع الملفاتكتلة FinallyUsing مقابل Try-Finallyاستثناءات مخصصةمراجعة - معالجة الأخطاء8نظام تحليل البيانات
إعداد جمع البياناتمنطق إدخال البيانات11HashSet الجزء الأول
ما هو الـ HashSet؟إضافة عنصرحذف عنصرالتحقق من وجود عنصرالفراغ والحجمملخص - HashSet3تحسينات الحلقات التكرارية
أداء الحلقات التكراريةالتكرار عبر البيانات المعقدةأنواع الحلقات التكراريةإعادة هيكلة الحلقات التكراريةملخص - الحلقات المحسنة6التعامل مع الـ Null
أساسيات الـ Null Referenceأنواع القيم القابلة للـ Nullأنماط التحقق من الـ Nullالبرمجة الدفاعيةملخص - أمان الـ Null