الحلقات المتداخلة
جزء من قسم الأساسيات في رحلة C على Coddy. الدرس 43 من 63.
الحلقات المتداخلة هي حلقات توضع داخل حلقة أخرى. في كل تكرار للحلقة الخارجية، تُنفَّذ الحلقة الداخلية بالكامل.
أنشئ حلقة خارجية تتكرر مرتين:
for (int i = 0; i < 2; i++) {
// شيفرة الحلقة الخارجية هنا
}أضف حلقة داخلية تتكرر 3 مرات في كل تكرار للحلقة الخارجية:
int rows = 2;
int cols = 3;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d,%d ", i, j);
}
printf("\n");
}سيكون الناتج:
0,0 0,1 0,2
1,0 1,1 1,2 لاحظ كيف تُكمل الحلقة الداخلية تكراراتها قبل أن تنتقل الحلقة الخارجية إلى تكرارها التالي. لكل حلقة عدّادها الخاص: يبدأ j من جديد من 0 في كل مرة تعمل فيها الحلقة الخارجية، بينما تبقى rows وcols كما هما، ولا تخبران الحلقتين إلا بموعد التوقف.
التحدي
سهلأنشئ برنامجًا يطبع نمطًا مستطيلًا من النجوم (*) بناءً على عدد الصفوف والأعمدة التي يُدخلها المستخدم.
ينبغي أن يقوم برنامجك بما يلي:
- اقرأ عددين صحيحين من المستخدم: الصفوف والأعمدة.
- استخدم حلقات متداخلة لطباعة نمط مستطيل من النجوم، بحيث تتعامل الحلقة الخارجية مع الصفوف والحلقة الداخلية مع الأعمدة.
- اطبع سطرًا جديدًا بعد كل صف.
على سبيل المثال، إذا كان الإدخال 3 صفوف و4 أعمدة، فينبغي أن يكون الناتج:
****
****
****استخدم عدادًا جديدًا لكل حلقة (على سبيل المثال i للصفوف وj للنجوم في الصف) وقارنه بـ rows أو columns. لا تغيّر rows وcolumns نفسيهما: يحتاج كل صف إلى columns من جديد.
جرّب بنفسك
#include <stdio.h>
int main() {
int rows, columns;
scanf("%d", &rows);
scanf("%d", &columns);
// اكتب الكود الخاص بك هنا لطباعة النمط
return 0;
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
3المعاملات
المعاملات الحسابيةمعامل باقي القسمةالزيادة والنقصانمعاملات الإسنادالمعاملات العلائقيةالمعاملات المنطقية - الجزء 1المعاملات المنطقية - الجزء 2المعاملات المنطقية - الجزء 3تحدي المراجعة6الحلقات التكرارية
حلقة forحلقة whileحلقة do whileإنهاء الحلقةالانتقال إلى التكرار التاليتحدي المراجعة رقم 1الحلقات المتداخلةالحلقات اللانهائيةتحدي المراجعة رقم 2تدرّب بنفسك: مترجم C عبر الإنترنت