Menu
CoddyTech
flag Ar iconالعربيةdown icon

حلقة متداخلة

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

الحلقة المتداخلة هي حلقة داخل حلقة أخرى. في كل تكرار للحلقة الخارجية، تنفّذ الحلقة الداخلية جميع تكراراتها:

for i in range(3):
	print("Outer: ", i)
	for j in range(2):
		print("  Inner: ", j)
Outer: 0
  Inner: 0
  Inner: 1
Outer: 1
  Inner: 0
  Inner: 1
Outer: 2
  Inner: 0
  Inner: 1

الكتلة الداخلية مُزاحة بمقدار مستويين. تُنفَّذ 3 × 2 = 6 مرات إجمالًا.

تحتاج الحلقتان إلى اسمين مختلفين للمتغير. كتابة for i داخل for i أخرى خطأ، ويُبلَّغ عنه قبل تشغيل البرنامج.

تُفيد الحلقات المتداخلة في التعامل مع الصفوف والأعمدة. تنهي print() السطر دائمًا، لذا لطباعة صف من النجوم، كوّنه أولًا في سلسلة نصية واطبعه مرة واحدة بعد انتهاء الحلقة الداخلية:

for row in range(2):
	var line := ""
	for col in range(3):
		line += "*"
	print(line)
***
***

تُنفَّذ الحلقة الخارجية مرة واحدة لكل صف، وتضيف الحلقة الداخلية نجمة واحدة لكل عمود. تؤدي عبارة break داخل الحلقة الداخلية إلى إيقاف الحلقة الداخلية فقط: وتتابع الحلقة الخارجية تنفيذ التكرار التالي.

challenge icon

التحدي

سهل

يقرأ البرنامج عددين كليين: rows وcols.

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

بالنسبة إلى المدخلين 3 و4، يكون الناتج:

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

جرّب بنفسك

extends Node

func _ready():
	var rows := int(OS.read_string_from_stdin())
	var cols := int(OS.read_string_from_stdin())
	# الحلقة الخارجية: تكرار واحد لكل صف
	# الحلقة الداخلية: أضف نجمة واحدة لكل عمود
quiz iconاختبر نفسك

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

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

تدرّب بنفسك: مترجم GDScript عبر الإنترنت