الحلقات المتداخلة
جزء من قسم Fundamentals في رحلة C على Coddy — الدرس 43 من 63.
الحلقات المتداخلة (Nested loops) هي حلقات توضع داخل حلقة أخرى. لكل تكرار للحلقة الخارجية، يتم تنفيذ الحلقة الداخلية بالكامل.
أنشئ حلقة خارجية تعمل 3 مرات:
for (int i = 0; i < 3; i++) {
// كود الحلقة الخارجية هنا
}أضف حلقة تكرار داخلية تعمل مرتين لكل تكرار من الحلقة الخارجية:
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
printf("%d,%d ", i, j);
}
printf("\n");
}سيكون الناتج:
0,0 0,1 0,2
1,0 1,1 1,2 لاحظ كيف تُكمل الحلقة الداخلية تكراراتها قبل أن تنتقل الحلقة الخارجية إلى تكرارها التالي.
التحدي
سهلأنشئ برنامجاً يطبع نمط مستطيل من النجوم (*) بناءً على عدد الصفوف والأعمدة التي يدخلها المستخدم.
يجب أن يقوم برنامجك بما يلي:
- قراءة عددين صحيحين من المستخدم: rows و columns.
- استخدام حلقات متداخلة لطباعة نمط مستطيل من النجوم حيث تتعامل الحلقة الخارجية مع الصفوف (rows) والحلقة الداخلية مع الأعمدة (columns).
- طباعة سطر جديد بعد كل صف.
على سبيل المثال، إذا كان الإدخال 3 صفوف و 4 أعمدة، يجب أن يكون المخرج:
****
****
****ورقة مرجعية
الحلقات المتداخلة هي حلقات توضع داخل حلقة أخرى. لكل تكرار في الحلقة الخارجية، يتم تنفيذ الحلقة الداخلية بالكامل.
هيكل الحلقة المتداخلة الأساسي:
for (int i = 0; i < outer_limit; i++) {
for (int j = 0; j < inner_limit; j++) {
// كود الحلقة الداخلية
}
// كود الحلقة الخارجية
}مثال مع المخرجات:
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
printf("%d,%d ", i, j);
}
printf("\n");
}المخرجات:
0,0 0,1 0,2
1,0 1,1 1,2تكمل الحلقة الداخلية جميع تكراراتها قبل أن تنتقل الحلقة الخارجية إلى تكرارها التالي.
جرّب بنفسك
#include <stdio.h>
int main() {
int rows, columns;
scanf("%d", &rows);
scanf("%d", &columns);
// اكتب كودك هنا لطباعة النمط
return 0;
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
2المتغيرات
أنواع البياناتالأعداد الصحيحة (Integer)الأعداد العشرية (Float - Double)المحارف (Characters)القيم المنطقية (Booleans)الثوابتأساسيات printfقواعد تسمية المتغيراتتحويل الأنواع (Type Casting) - الجزء 1تحويل الأنواع (Type Casting) - الجزء 2تحدي المراجعة3المعاملات
المعاملات الحسابيةمعامل باقي القسمةالزيادة والنقصانمعاملات الإسنادالمعاملات العلائقيةالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيالمعاملات المنطقية - الجزء الثالثتحدي المراجعة6الحلقات التكرارية
حلقة Forحلقة Whileحلقة Do WhileBreakContinueتحدي المراجعة #1الحلقات المتداخلةالحلقات اللانهائيةتحدي المراجعة #2