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

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

جزء من قسم الأساسيات في رحلة Ruby على Coddy — الدرس 46 من 88.

يمكنك وضع حلقة تكرارية داخل حلقة تكرارية أخرى لإنشاء حلقة متداخلة. تعمل الحلقة الداخلية بالكامل لكل تكرار من الحلقة الخارجية، مما يجعل هذا النمط مفيداً للعمل مع الشبكات أو الجداول أو التوليفات.

for i in 1..2
  for j in 1..3
    puts "i=#{i}, j=#{j}"
  end
end

يؤدي هذا إلى إخراج ستة أسطر. لكل قيمة من قيم i، تنتقل الحلقة الداخلية عبر جميع قيم j.

في البداية تكون i هي 1 بينما تمر j عبر 1، 2، 3. ثم تصبح i هي 2 وتمر j مرة أخرى عبر 1، 2، 3.

مثال عملي هو إنشاء نمط ضرب بسيط:

for row in 1..3
  for col in 1..3
    print "#{row * col} "
  end
  puts ""
end

يقوم هذا بطباعة شبكة 3x3 من النواتج. تحافظ print على القيم في نفس السطر، وتنتقل puts "" إلى سطر جديد بعد اكتمال كل صف. يمكنك أيضاً دمج أنواع مختلفة من الحلقات، مثل حلقة times داخل حلقة for.

challenge icon

التحدي

سهل

اقرأ عددين صحيحين من المدخلات:

  1. rows - عدد الصفوف
  2. cols - عدد الأعمدة

استخدم الحلقات المتداخلة (nested loops) لطباعة مستطيل مكون من النجوم (*) بالأبعاد المعطاة. يجب أن يحتوي كل صف على cols من النجوم مفصولة بمسافات، ويجب أن يكون كل صف في سطر مستقل.

استخدم print لطباعة النجوم داخل الصف الواحد، و puts للانتقال إلى السطر التالي بعد كل صف.

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

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

إذا كانت المدخلات 2 و 5، يجب أن تكون المخرجات:

* * * * *
* * * * *

ورقة مرجعية

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

for i in 1..2
  for j in 1..3
    puts "i=#{i}, j=#{j}"
  end
end

ينتج عن هذا ستة أسطر في المجموع. بالنسبة لـ i=1، تتكرر j عبر 1، 2، 3. ثم بالنسبة لـ i=2، تتكرر j مرة أخرى عبر 1، 2، 3.

استخدم print لإبقاء المخرجات على نفس السطر و puts "" للانتقال إلى سطر جديد:

for row in 1..3
  for col in 1..3
    print "#{row * col} "
  end
  puts ""
end

يمكنك المزج بين أنواع مختلفة من الحلقات، مثل استخدام حلقة times داخل حلقة for.

جرّب بنفسك

# قراءة المدخلات
rows = gets.to_i
cols = gets.to_i

# مهمة: اكتب كودك أدناه
# استخدم الحلقات المتداخلة لطباعة مستطيل من النجوم
# استخدم print للنجوم داخل الصف و puts للانتقال إلى السطر التالي
quiz iconاختبر نفسك

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

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