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

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

جزء من قسم الأساسيات في رحلة Swift على Coddy. الدرس 49 من 86.

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

for row in 1...3 {
    for col in 1...2 {
        print("Row \(row), Col \(col)")
    }
}
// المخرجات:
// Row 1, Col 1
// Row 1, Col 2
// Row 2, Col 1
// Row 2, Col 2
// Row 3, Col 1
// Row 3, Col 2

لكل قيمة من قيم row، تعمل الحلقة الداخلية بالكامل عبر جميع قيم col. لذا، مع 3 تكرارات خارجية وتكرارين داخليين، يتم تشغيل الكود الموجود بالداخل 6 مرات إجمالاً (3 × 2).

تُستخدم الحلقات المتداخلة بشكل شائع للتعامل مع الهياكل التي تشبه الشبكة أو لإنشاء الأنماط.

إليك مثال يطبع مستطيلاً بسيطاً من النجوم:

for row in 1...2 {
    for col in 1...4 {
        print("*", terminator: "")
    }
    print("")  // الانتقال إلى السطر التالي
}
// المخرجات:
// ****
// ****

يمنع terminator: "" الـ print من إضافة سطر جديد، لذا تظهر النجوم في نفس الصف. بعد انتهاء الحلقة الداخلية، ينتقل print("") إلى السطر التالي.

challenge icon

التحدي

سهل

اقرأ عددين صحيحين من المدخلات: rows و cols. استخدم الحلقات المتداخلة لطباعة شبكة من الأرقام حيث تعرض كل خلية حاصل ضرب رقم الصف في رقم العمود.

ستتلقى المدخلات التالية:

  • السطر الأول: عدد الصفوف (على سبيل المثال، "3")
  • السطر الثاني: عدد الأعمدة (على سبيل المثال، "4")

المتطلبات:

  • استخدم حلقة خارجية للصفوف (من 1 إلى rows)
  • استخدم حلقة داخلية للأعمدة (من 1 إلى cols)
  • اطبع حاصل ضرب أرقام الصف والعمود الحاليين
  • افصل بين القيم في نفس الصف بمسافة
  • يجب أن يكون كل صف في سطر مستقل

تلميح: استخدم terminator: " " لإبقاء القيم في نفس السطر، ثم استخدم print("") بعد الحلقة الداخلية للانتقال إلى السطر التالي.

على سبيل المثال، إذا كان rows هو 3 و cols هو 4، يجب أن تكون المخرجات:

1 2 3 4 
2 4 6 8 
3 6 9 12 

جرّب بنفسك

let rows = Int(readLine()!)!
let cols = Int(readLine()!)!

// مهام: اكتب الكود الخاص بك أدناه
// استخدم الحلقات المتداخلة لطباعة شبكة الضرب
// الحلقة الخارجية: التكرار عبر الصفوف (من 1 إلى rows)
// الحلقة الداخلية: التكرار عبر الأعمدة (من 1 إلى cols)
// اطبع ناتج ضرب الصف * العمود
// استخدم print(..., terminator: " ") لإبقاء القيم في نفس السطر
// استخدم print("") بعد الحلقة الداخلية للانتقال إلى السطر التالي
quiz iconاختبر نفسك

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

جميع دروس الأساسيات

تدرّب بنفسك: Playground لـ Swift