الحلقات التكرارية في البرمجة (for / while): الدليل الشامل مع أمثلة عملية لكل المبتدئين






1. مقدمة 

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

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

هناك نوعان رئيسيان من الحلقات في معظم لغات البرمجة مثل بايثون:

  1. حلقة for: تُستخدم عندما نعرف مسبقًا عدد التكرارات أو عند التعامل مع عناصر مجموعة معينة مثل قائمة أو نص.

  2. حلقة while: تُستخدم عندما نريد تكرار الأوامر طالما تحقق شرط معين، وقد لا نعرف عدد التكرارات مسبقًا.

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

2. أهداف درس الحلقات التكرارية (for / while)

بعد إتمام هذا الدرس، سيكون الطالب قادرًا على:

  1. فهم مفهوم الحلقات التكرارية

    • معرفة الغرض من استخدام الحلقات ولماذا هي ضرورية لتقليل التكرار في الكود وجعل البرامج أكثر كفاءة.

  2. تمييز أنواع الحلقات التكرارية

    • معرفة الفرق بين حلقة for التي تستخدم عند معرفة عدد التكرارات مسبقًا، وحلقة while التي تعمل طالما تحقق شرط معين.

  3. كتابة حلقات for و while بشكل صحيح

    • استخدام الصياغة الصحيحة لكل حلقة، والتحكم في التكرار بدقة.

  4. دمج الشروط داخل الحلقات

    • القدرة على استخدام if / else داخل الحلقات لاتخاذ قرارات أثناء التكرار.

  5. التعامل مع مجموعات البيانات

    • استخدام الحلقات لمعالجة القوائم، السلاسل النصية، أو أي مجموعة عناصر بشكل ديناميكي.

  6. تطبيق الحلقات في مشاريع عملية

    • كتابة برامج تحل مشكلات واقعية مثل: حساب المجموع، طباعة نماذج متكررة، أو التعامل مع بيانات المستخدمين.

  7. تجنب الأخطاء الشائعة عند استخدام الحلقات

    • فهم المشكلات المحتملة مثل الحلقات اللانهائية وكيفية تجنبها، وترتيب الشروط بشكل صحيح داخل الحلقات.

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

3. الحلقات التكرارية في البرمجة: for و while

1. مفهوم الحلقات التكرارية

الحلقات التكرارية هي أداة أساسية في البرمجة لتنفيذ مجموعة من الأوامر عدة مرات بطريقة منظمة وذكية.
بدون الحلقات، سيكون على المبرمج كتابة نفس الكود أكثر من مرة، مما يجعل البرنامج طويلًا وصعب الصيانة.

الفرق بين النوعين الرئيسيين:

  • for: تُستخدم عندما نعرف عدد التكرارات مسبقًا أو عند التعامل مع عناصر مجموعة محددة.

  • while: تُستخدم عندما نريد التكرار طالما تحقق شرط معين، وقد لا نعرف عدد المرات مسبقًا.


2. حلقة for

حلقة for تكرر مجموعة من الأوامر على عناصر محددة، مثل قائمة، نص، أو مجموعة أرقام.

الصياغة العامة:




الكود جاهز للنسخ 

for variable in iterable:

# الأوامر المراد تكرارها
  • variable: اسم متغير يمثل كل عنصر أثناء التكرار.

  • iterable: مجموعة العناصر أو نطاق الأرقام الذي سيتم المرور عليه.

مثال عملي 1: طباعة الأرقام من 1 إلى 5




الكود جاهز للنسخ

for i in range(1, 6): print(i)

الشرح:

  • range(1,6) ينشئ سلسلة أرقام من 1 حتى 5 (الرقم الأخير 6 غير مشمول).

  • كل رقم من 1 إلى 5 يُخزن مؤقتًا في المتغير i.

  • أمر print(i) يطبع الرقم الحالي لكل دورة من الحلقة.

مثال عملي 2: التعامل مع قائمة




الكود جاهز للنسخ 

fruits = ["تفاح", "موز", "برتقال"] for fruit in fruits: print("أحب", fruit)

الشرح:

  • fruits هي قائمة تحتوي على ثلاثة عناصر.

  • كل عنصر من القائمة يُخزن في المتغير fruit أثناء كل تكرار.

  • الأمر print("أحب", fruit) يطبع رسالة تحتوي على اسم الفاكهة الحالية.


3. حلقة while

حلقة while تستمر في التكرار طالما تحقق شرط معين.

الصياغة العامة:




  • الشرط: أي تعبير منطقي True/False، الحلقة تعمل طالما الشرط صحيح.

مثال عملي 1: طباعة الأرقام حتى 5





الكود جاهز للنسخ

i = 1 while i <= 5: print(i) i += 1

الشرح:

  • نبدأ بتعيين المتغير i = 1.

  • الحلقة تستمر طالما أن i <= 5 صحيح.

  • الأمر print(i) يطبع الرقم الحالي.

  • i += 1 يزيد قيمة i بواحد بعد كل دورة، لتجنب التكرار اللانهائي.

مثال عملي 2: حلقة تفاعلية





الكود جاهز للنسخ

answer = "" while answer != "نعم": answer = input("هل فهمت الدرس؟ (نعم/لا): ") print("رائع! استمر بالتطبيق العملي.")

الشرح:

  • يبدأ المتغير answer فارغًا.

  • الحلقة تستمر طالما أن الإجابة ليست "نعم".

  • المستخدم يُطلب منه إدخال الإجابة في كل دورة.

  • عند كتابة "نعم"، يتحقق الشرط وتخرج الحلقة، ويُطبع رسالة تحفيزية.


4. دمج الحلقات مع الجمل الشرطية

يمكن وضع if / else داخل الحلقات لاتخاذ قرارات أثناء التكرار.

مثال: طباعة الأرقام الزوجية والفردية من 1 إلى 10





الكود جاهز للنسخ

for i in range(1, 11): if i % 2 == 0: print(i, "زوجي") else: print(i, "فردي")

الشرح:

  • الحلقة for تمر على الأرقام من 1 إلى 10.

  • i % 2 == 0 يتحقق إذا كان الرقم زوجيًا.

  • إذا كان الرقم زوجيًا → يطبع "زوجي"، وإلا → يطبع "فردي".


5. الحلقات المتداخلة (Nested Loops)

يمكن وضع حلقة داخل حلقة أخرى، وهي مفيدة عند التعامل مع جداول أو مصفوفات متعددة الأبعاد.

مثال: طباعة جدول الضرب للأرقام من 1 إلى 3





الكود جاهز للنسخ 

for i in range(1, 4): for j in range(1, 4): print(i, "x", j, "=", i*j)

الشرح:

  • الحلقة الخارجية تمر على الأرقام 1 إلى 3.

  • داخل كل دورة من الحلقة الخارجية، تمر الحلقة الداخلية على الأرقام 1 إلى 3.

  • print(i, "x", j, "=", i*j) يطبع حاصل ضرب كل زوج من الأرقام.

  • هذا يسمح بإنشاء جدول الضرب كامل بطريقة منظمة.


6. التطبيقات العملية للحلقات

  • معالجة البيانات: جمع الأرقام، حساب المتوسط، فرز القوائم.

  • الألعاب: تنفيذ خطوات اللعبة عدة مرات تلقائيًا.

  • التقارير والإحصائيات: التعامل مع بيانات الطلاب أو المستخدمين.

  • معالجة النصوص: البحث عن كلمة معينة أو تعديل نصوص متعددة.

4. خريطة ذهنية
خريطة ذهنية تعليمية تبين أنواع الحلقات التكرارية في البرمجة، مكوناتها، استخداماتها، وأدوات التحكم مثل break و continue









































5. أنشطة عملية على الحلقات التكرارية (for / while)

🧠 النشاط 1: طباعة الأرقام

المطلوب:
اكتب برنامجًا يستخدم حلقة for لطباعة الأرقام من 1 إلى 10.

تلميح:
استخدم range(1, 11) داخل الحلقة.

هدف النشاط:
التدريب على استخدام حلقة for مع الدوال الجاهزة مثل range().


🧮 النشاط 2: مجموع الأعداد

المطلوب:
اكتب برنامجًا يحسب مجموع الأرقام من 1 إلى 100 باستخدام حلقة for.

تلميح:
أنشئ متغيرًا باسم sum = 0، وأضف إليه كل رقم داخل الحلقة.

هدف النشاط:
فهم كيفية جمع القيم داخل الحلقات والتحكم في المتغيرات.


🍎 النشاط 3: المرور على قائمة

المطلوب:
أنشئ قائمة من 5 فواكه، واطبع كل فاكهة مع عبارة ترحيبية مثل:
"أحب فاكهة التفاح 🍏"

تلميح:
استخدم for fruit in fruits:

هدف النشاط:
تطبيق الحلقات على القوائم والتعامل مع النصوص.


🔁 النشاط 4: حلقة while تفاعلية

المطلوب:
أنشئ برنامجًا يطلب من المستخدم كتابة كلمة المرور الصحيحة،
ويستمر في الطلب حتى يكتب الكلمة "1234".

تلميح:
استخدم شرط في الحلقة مثل:

while password != "1234":

هدف النشاط:
التدريب على التكرار الشرطي واستخدام مدخلات المستخدم.


🔢 النشاط 5: تحديد الأرقام الزوجية والفردية

المطلوب:
اكتب برنامجًا يطبع الأرقام من 1 إلى 20،
ويُظهر بجانب كل رقم هل هو زوجي أم فردي.

تلميح:
استخدم if i % 2 == 0: داخل حلقة for.

هدف النشاط:
دمج الجمل الشرطية داخل الحلقات التكرارية.


📊 النشاط 6: جدول الضرب المصغّر

المطلوب:
أنشئ برنامجًا يطبع جدول الضرب من 1 إلى 5 باستخدام حلقتين متداخلتين.

تلميح:
استخدم:

for i in range(1,6): for j in range(1,6): print(i, "x", j, "=", i*j)

هدف النشاط:
تعلم كيفية التعامل مع الحلقات المتداخلة وناتج كل تكرار.


💬 النشاط 7: عداد الكلمات في النص

المطلوب:
اطلب من المستخدم إدخال جملة، ثم استخدم حلقة for لحساب عدد الكلمات.

تلميح:
يمكنك استخدام:

text = input("أدخل جملة: ") words = text.split() count = 0 for word in words: count += 1 print("عدد الكلمات:", count)

هدف النشاط:
تطبيق الحلقات في معالجة النصوص وفهم العلاقة بين القوائم والنصوص.


🔍 النشاط 8: البحث عن كلمة معينة

المطلوب:
اكتب برنامجًا يحتوي على قائمة كلمات،
ويبحث باستخدام حلقة for إذا كانت الكلمة "Python" موجودة.

تلميح:
استخدم شرط داخل الحلقة لمقارنة كل عنصر بالكلمة المطلوبة.

هدف النشاط:
تطبيق مفهوم التكرار مع البحث الشرطي داخل القوائم.


🎯 النشاط 9: التوقف عن التكرار باستخدام break

المطلوب:
أنشئ برنامجًا يطبع الأرقام من 1 إلى 10،
لكن يتوقف عند الرقم 5 باستخدام break.

هدف النشاط:
فهم كيفية إيقاف الحلقة يدويًا عندما يتحقق شرط معين.


🔁 النشاط 10: تخطي رقم معين باستخدام continue

المطلوب:
اكتب برنامجًا يطبع الأرقام من 1 إلى 10،
لكن يتخطى الرقم 7 ولا يطبعه.

تلميح:
استخدم:

if i == 7: continue

هدف النشاط:
تعلم كيفية تخطي دورة معينة في الحلقة دون إيقافها بالكامل.

6. أسئلة تفاعلية مع الإجابات – الحلقات التكرارية (for / while)

🔹 السؤال 1:

ما الهدف الأساسي من استخدام الحلقات التكرارية في البرمجة؟

الخيارات:
أ) تكرار الأوامر تلقائيًا بدون كتابتها أكثر من مرة
ب) زيادة طول الكود
ج) جعل البرنامج أبطأ
د) استخدام متغيرات أكثر

الإجابة الصحيحة: ✅ أ) تكرار الأوامر تلقائيًا بدون كتابتها أكثر من مرة

الشرح:
الحلقات التكرارية تساعد على تنفيذ نفس الكود عدة مرات بطريقة منظمة وذكية، مما يجعل البرنامج مختصرًا وسهل التعديل.


🔹 السؤال 2:

ما الفرق الرئيسي بين حلقة for و while؟

الإجابة:

  • حلقة for: تُستخدم عندما نعرف عدد التكرارات مسبقًا (مثل المرور على قائمة أو استخدام range()).

  • حلقة while: تُستخدم عندما لا نعرف عدد التكرارات مسبقًا وتعمل طالما تحقق شرط معين.

مثال توضيحي:

# for loop for i in range(3): print(i) # while loop i = 0 while i < 3: print(i) i += 1

🔹 السؤال 3:

ما نتيجة الكود التالي؟

for i in range(1, 4): print("Hello")

الخيارات:
أ) يطبع "Hello" مرة واحدة
ب) يطبع "Hello" ثلاث مرات
ج) لا يطبع شيئًا
د) يطبع أرقامًا فقط

الإجابة الصحيحة: ✅ ب) يطبع "Hello" ثلاث مرات

الشرح:
الدالة range(1,4) تولد الأرقام 1، 2، 3، وبالتالي تتكرر الحلقة ثلاث مرات وتطبع "Hello" في كل مرة.


🔹 السؤال 4:

ما الخطأ في الكود التالي؟

i = 1 while i <= 5: print(i)

الإجابة:
الكود سينتج حلقة لا نهائية (infinite loop) لأن قيمة i لا تتغير أبدًا.

التصحيح:
يجب زيادة i داخل الحلقة:

i = 1 while i <= 5: print(i) i += 1

🔹 السؤال 5:

ما ناتج الكود التالي؟

for x in [1, 2, 3]: print(x * 2)

الإجابة:
سيطبع:

2 4 6

الشرح:
الحلقة تمر على كل عنصر في القائمة [1, 2, 3]، وتضربه في 2، ثم تطبع الناتج.


🔹 السؤال 6:

في أي حالة نستخدم الكلمة break داخل الحلقة؟

الإجابة:
نستخدم break عندما نريد إيقاف الحلقة فورًا عند تحقق شرط معين.

مثال:

for i in range(1, 10): if i == 5: break print(i)

الناتج سيكون:

1 2 3 4

لأن الحلقة توقفت عند وصول i إلى 5.


🔹 السؤال 7:

ما وظيفة الكلمة continue في الحلقات؟

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

مثال:

for i in range(1, 6): if i == 3: continue print(i)

الناتج:

1 2 4 5

لاحظ أن الرقم 3 تم تخطيه.


🔹 السؤال 8:

ما الناتج من الكود التالي؟

count = 0 while count < 3: print("Python") count += 1

الإجابة:
الناتج:

Python Python Python

الشرح:
القيمة تبدأ من 0، وتزداد في كل دورة حتى تصبح 3، فيتوقف التكرار بعد طباعة الكلمة ثلاث مرات.


🔹 السؤال 9:

إذا أردنا طباعة الأرقام الزوجية فقط من 1 إلى 10، كيف نكتب الحلقة؟

الإجابة:

for i in range(1, 11): if i % 2 == 0: print(i)

الشرح:
الشرط i % 2 == 0 يتحقق فقط عندما يكون الرقم زوجيًا، فتُطبع تلك الأرقام فقط.


🔹 السؤال 10:

هل يمكن وضع حلقة داخل حلقة أخرى؟ ولماذا؟

الإجابة:
نعم ✅ يمكن ذلك، وتسمى الحلقات المتداخلة (Nested Loops).
نستخدمها عندما نحتاج لتكرار عملية داخل عملية أخرى، مثل إنشاء جدول الضرب أو المرور على بيانات ثنائية الأبعاد.

مثال:

for i in range(1, 3): for j in range(1, 3): print(i, j)

الناتج:

1 1 1 2 2 1 2 2

7. تجربتي الشخصية مع الحلقات التكرارية (for / while)

عندما بدأت أتعلم البرمجة لأول مرة، كنت أكتب نفس الأوامر مرارًا وتكرارًا في الكود، مثل طباعة الأرقام من 1 إلى 10 سطرًا بسطر، وكنت أظن أن هذا هو الحل الوحيد.
لكن بعد أن وصلت إلى درس الحلقات التكرارية (for / while)، كل شيء تغير تمامًا.

أتذكر أن أول مرة جربت فيها هذا الكود:

for i in range(1, 11): print(i)

كنت مندهشًا جدًا 😲!
فقط بسطرين من الكود، استطعت أن أجعل البرنامج يطبع عشرة أرقام بطريقة منظمة ودقيقة، وبدأت حينها أستوعب قوة التكرار الذكي في البرمجة.

بعدها بدأت أطبق الحلقات في كل مكان:
كنت أستخدم for لأمرّ على القوائم وأطبع أسماء الطلاب، وأستخدم while لأسأل المستخدم أسئلة حتى يكتب الإجابة الصحيحة.
حتى أنني جربت أن أبرمج لعبة تخمين الرقم باستخدام حلقة while، وكانت تجربة ممتعة جدًا لأنها جعلت البرنامج يتفاعل معي كل مرة.

الجميل في الحلقات أنك مع الوقت تبدأ تفكر بطريقة "برمجية" أكثر —
بدل ما تسأل نفسك "كيف أكرر هذا؟" تبدأ تسأل "كيف أجعل الكود يكرر نفسه بطريقة ذكية؟"
وهنا فقط، تبدأ تشعر أنك مُبرمج حقيقي.

اليوم، عندما أكتب أي مشروع جديد، أول ما يخطر في بالي هو:

"هل يمكنني اختصار هذا الجزء باستخدام حلقة؟"

وهذه هي اللحظة التي أدركت فيها أن الحلقات التكرارية ليست مجرد درس،
بل أداة قوية لتجعل كودك منظمًا وسهل الصيانة ويبدو احترافيًا.

8. الأخطاء الشائعة عند استخدام الحلقات التكرارية (for / while)

تعلم الحلقات التكرارية خطوة مهمة في طريقك لتصبح مبرمجًا محترفًا، لكن مثل أي مهارة جديدة، هناك بعض الأخطاء التي يقع فيها الكثيرون في البداية.
دعنا نستعرضها معًا ونتعلم كيف نتجنبها 👇


🔹 1. نسيان تحديث المتغير في حلقة while

هذا الخطأ من أكثر الأخطاء شيوعًا، وغالبًا ما يؤدي إلى حلقة لا نهائية (Infinite Loop).

مثال خاطئ:

i = 1 while i <= 5: print(i)

الحلقة هنا لن تتوقف أبدًا، لأن i لا تزيد، وبالتالي الشرط i <= 5 يبقى دائمًا صحيحًا.

التصحيح:

i = 1 while i <= 5: print(i) i += 1

الآن الحلقة تتوقف بعد طباعة الأرقام من 1 إلى 5 لأن i تزداد في كل مرة.


🔹 2. استخدام شرط غير منطقي أو غير قابل للتحقق

أحيانًا يكتب الطالب شرطًا لا يمكن أن يصبح False أبدًا، مما يجعل الحلقة تعمل إلى ما لا نهاية.

مثال:

while True: print("أبدًا لن تتوقف 😅")

هذه الحلقة لن تتوقف أبدًا لأنها تعتمد على الشرط True فقط.

التصحيح:
أضف شرطًا منطقيًا واضحًا يغيّر حالته أثناء التكرار، أو استخدم break للخروج عند نقطة معينة.


🔹 3. الخلط بين حلقة for و while

الكثير من الطلاب يستخدمون while في حالات يُفترض فيها استخدام for، أو العكس.

مثال:
إذا كنت تعرف عدد التكرارات مسبقًا (مثل طباعة 10 أرقام)، فالأفضل استخدام for بدل while.

خاطئ:

i = 1 while i <= 10: print(i) i += 1

أفضل:

for i in range(1, 11): print(i)

الفرق؟ الكود باستخدام for أقصر وأكثر وضوحًا وأسهل في القراءة.


🔹 4. الخطأ في استخدام range()

بعض الطلاب ينسون أن الدالة range() لا تشمل الرقم الأخير.

مثال:

for i in range(1, 5): print(i)

سيطبع:

1 2 3 4

وليس 5!

الحل:
إذا أردت أن تشمل الرقم 5، استخدم range(1, 6) بدلًا من range(1, 5).


🔹 5. كتابة print خارج الحلقة بالخطأ

أحيانًا ينسى الطالب المسافة البادئة (indentation) ويكتب print خارج الحلقة، فيُنفذ مرة واحدة فقط بدلًا من التكرار.

مثال خاطئ:

for i in range(3): print(i)

هذا سيعطي خطأ في التنسيق (IndentationError).

التصحيح:

for i in range(3): print(i)

احرص دائمًا على أن تكون المسافة البادئة داخل الحلقة صحيحة ومتناسقة.


🔹 6. وضع break أو continue في المكان الخطأ

بعض الطلاب يستخدمون break في بداية الحلقة بدون شرط، مما يجعل الحلقة تتوقف من أول دورة.

مثال خاطئ:

for i in range(5): break print(i)

لن يُطبع أي شيء لأن break أوقف الحلقة فورًا.

التصحيح:
استخدم break داخل شرط محدد:

for i in range(5): if i == 3: break print(i)

الآن الحلقة تتوقف فقط عندما يصل i إلى 3.


🔹 7. عدم فهم التكرار داخل الحلقات المتداخلة

في الحلقات المتداخلة، بعض الطلاب يعتقدون أن كل حلقة تعمل بشكل منفصل،
لكن في الحقيقة، كل دورة من الحلقة الخارجية تُشغّل جميع دورات الحلقة الداخلية.

مثال توضيحي:

for i in range(1, 3): for j in range(1, 3): print(i, j)

الناتج:

1 1 1 2 2 1 2 2

كل قيمة من i تُكرر كل قيم j بالكامل.


🔹 8. كتابة حلقة بلا هدف واضح

أحيانًا يكتب الطالب حلقة تكرار دون أن يكون لها دور فعلي في الكود، مما يزيد من تعقيد البرنامج بلا فائدة.

نصيحة:
قبل كتابة أي حلقة، اسأل نفسك:

"ما الهدف من هذا التكرار؟ وما الذي سيتغير في كل دورة؟"


💡 الخلاصة الصغيرة:

أغلب أخطاء الحلقات التكرارية تحدث بسبب نسيان التحديث أو كتابة شرط خاطئ،
لذا راجع دائمًا:
1️⃣ هل الشرط منطقي؟
2️⃣ هل المتغير يتغير في كل دورة؟
3️⃣ هل مكان الأوامر داخل الحلقة صحيح؟

9. نصائح سريعة لإتقان الحلقات التكرارية (for / while)
  1. 🧠 ابدأ دائمًا بفهم الهدف من الحلقة
    قبل أن تكتب الكود، اسأل نفسك:
    "ما الشيء الذي أريد تكراره؟ وكم مرة؟"
    هذا سيساعدك على اختيار النوع الصحيح من الحلقات (for أو while).

  1. 🔁 استخدم for عندما تعرف عدد التكرارات مسبقًا
    مثال: طباعة الأرقام من 1 إلى 10 → استخدم for.
    بينما إذا كان عدد التكرارات يعتمد على شرط (مثل إدخال المستخدم)، استخدم while.

  1. 🧩 تأكد من أن الشرط في while سيتغير
    لا تترك شرط الحلقة ثابتًا وإلا ستدخل في حلقة لا نهائية!
    استخدم دائمًا جملة مثل i += 1 داخل الحلقة لتحديث المتغير.

  1. 💡 تعلم استخدام range() بمرونة
    range(10) تعني من 0 إلى 9
    range(1, 6) تعني من 1 إلى 5
    range(1, 10, 2) تعني من 1 إلى 9 بخطوات 2
    استخدمها بذكاء لتقليل الأكواد.

  1. 🧱 انتبه للـ indentation (المسافات البادئة)
    أي خطأ بسيط في المسافة قد يجعل الكود لا يعمل أو يعمل بطريقة خاطئة.
    تأكد أن جميع الأوامر داخل الحلقة تبدأ بنفس المسافة (عادة 4 مسافات).

  1. 🛑 استخدم break بحذر
    لا تضع break إلا عند شرط محدد بوضوح،
    لأنها توقف الحلقة فورًا حتى لو لم تنتهِ بعد.

  1. ⏭️ استخدم continue لتجاوز دورة واحدة فقط
    إذا أردت أن تتخطى حالة معينة وتكمل التكرار التالي، استخدم continue.
    مثلًا لتجاوز الأعداد السالبة فقط.

  1. 🔍 اختبر كودك على أمثلة صغيرة
    قبل أن تستخدم حلقة في مشروعك الكبير، جربها في مثال بسيط لتتأكد أن الشرط صحيح.

  1. 📊 اكتب تعليقات بسيطة في الأكواد المعقدة
    الحلقات المتداخلة قد تكون صعبة القراءة، فاكتب تعليقًا يوضح وظيفتها لتسهل الفهم لاحقًا.

  1. ⚙️ تجنب الحلقات غير الضرورية
    إذا كان بالإمكان حل المسألة بدون حلقة، افعل ذلك.
    الحلقات الزائدة تجعل الكود أبطأ وأصعب في الصيانة.

  1. 🧾 راجع الكود خطوة بخطوة
    استخدم الطباعة print() داخل الحلقة لمعرفة كيف تتغير القيم في كل دورة،
    خصوصًا عند اختبار الأخطاء أو فهم منطق الكود.

  1. 🎯 تدرّب كثيرًا
    الحل الوحيد لإتقان الحلقات هو التطبيق.
    اكتب أكوادًا تطبع الأرقام، تحسب المجموع، ترسم أشكالًا بالنجوم... كل هذا سيجعلك أكثر فهمًا وثقة.

10. ملخص درس الحلقات التكرارية (for / while) في البرمجة

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


🔹 أولاً: مفهوم الحلقات التكرارية

الحلقة التكرارية هي بنية برمجية تُستخدم لتكرار تنفيذ مجموعة من الأوامر ما دام شرط معين متحققًا.
عندما ينتهي الشرط، تتوقف الحلقة تلقائيًا.


🔹 ثانيًا: أنواع الحلقات التكرارية

  1. حلقة for
    تُستخدم عندما تعرف عدد التكرارات مسبقًا.
    مثل:

    for i in range(1, 6): print(i)

    👉 هذه الحلقة تطبع الأرقام من 1 إلى 5 بسهولة.

  2. حلقة while
    تُستخدم عندما لا تعرف عدد التكرارات مسبقًا، وتعتمد على شرط منطقي.
    مثل:

    i = 1 while i <= 5: print(i) i += 1

    👉 هنا تستمر الحلقة حتى يصبح الشرط غير محقق.


🔹 ثالثًا: عناصر نجاح أي حلقة

لكي تعمل الحلقات بشكل صحيح، يجب أن تحتوي على:

  • بداية واضحة (مثل تهيئة المتغير).

  • شرط منطقـي لتحديد متى تتوقف.

  • تحديث مستمر داخل الحلقة حتى لا تستمر إلى ما لا نهاية.


🔹 رابعًا: أدوات التحكم داخل الحلقات

  • break: لإيقاف الحلقة فورًا عند شرط معين.

  • continue: لتخطي دورة واحدة فقط ومتابعة التكرار التالي.


🔹 خامسًا: أهمية الحلقات التكرارية

  • تجعل الكود أقصر وأوضح.

  • توفر الوقت والجهد.

  • تُستخدم في كثير من التطبيقات مثل:

    • حساب المجموعات.

    • قراءة البيانات من الملفات.

    • التكرار عبر القوائم.

    • بناء رسوم وأنماط في واجهات المستخدم.


🔹 سادسًا: نصيحة للمراجعة

افهم المنطق قبل الحفظ.
إذا فهمت كيف تعمل الشروط داخل الحلقات وكيف تتغير القيم،
فستستطيع كتابة أي كود تكراري بسهولة مهما كان معقدًا.


الخلاصة النهائية

الحلقات التكرارية هي قلب البرمجة التفاعلية،
فهي تمنح البرنامج القدرة على التفكير والتكرار والتنفيذ الذكي،
وكلما تدربت عليها أكثر، أصبحت أكثر قدرة على كتابة أكواد فعالة وسهلة الصيانة.

11. الخاتمة

في نهاية هذا الدرس، نكون قد اكتشفنا معًا كيف تمنحنا الحلقات التكرارية قوة التحكم في الزمن داخل الكود،
فمن خلال سطرين فقط، يمكننا تنفيذ مئات العمليات دون تعب أو تكرار يدوي.
تعلمنا أن الحلقات ليست مجرد أكواد متكررة، بل هي أسلوب تفكير برمجي يجعلنا نفكر بطريقة منظمة ومنطقية.

بدأنا بفهم الفرق بين for و while، وتعلّمنا متى نستخدم كل واحدة منهما.
ثم شاهدنا كيف يمكن للحلقة أن تتفاعل مع الشروط، وكيفية استخدام أدوات مثل break و continue للتحكم في سير التكرار.

ورأينا أن الأخطاء البسيطة — مثل نسيان تحديث المتغير أو كتابة شرط غير صحيح — قد تجعل الكود لا يعمل كما نتوقع.
لكن مع الممارسة والفهم الصحيح، تصبح هذه الأخطاء فرصًا للتعلّم لا للعقبات.

تذكّر دائمًا:

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

 12. مصادر موثوقة لتعلّم الحلقات التكرارية (for / while)

إذا رغبت في التعمق أكثر في فهم الحلقات التكرارية وتطبيقها في لغات البرمجة المختلفة، فإليك مجموعة من المصادر الموثوقة التي يعتمد عليها المبرمجون حول العالم 👇


🔹 1. موقع Python الرسمي

يوفّر توثيقًا تفصيليًا وشروحات دقيقة حول الحلقات، مع أمثلة عملية على كل نوع.
🔗 Python Official Documentation – Loops


🔹 2. موقع W3Schools

واحد من أسهل المواقع للتعلّم الذاتي، يشرح الحلقات بأسلوب بسيط مع تمارين تفاعلية يمكنك تجربتها مباشرة في المتصفح.
🔗 W3Schools – Python Loops


🔹 3. موقع GeeksforGeeks

يحتوي على مقالات تحليلية متعمقة مع أمثلة متنوعة، تغطي لغات برمجة متعددة مثل Python وC++ وJava.
🔗 GeeksforGeeks – Loops in Python


🔹 4. موقع Programiz

يشرح المفاهيم البرمجية خطوة بخطوة، ويُعد من أفضل المصادر للمبتدئين.
🔗 Programiz – Python for Loop


🔹 5. منصة Coursera

توفر دورات مجانية ومدفوعة من جامعات مرموقة لتعلّم البرمجة من الأساس وحتى الاحتراف.
🔗 Coursera – Programming for Everybody (Python)


🔹 6. أكاديمية freeCodeCamp

منصة مفتوحة المصدر تُقدّم دروسًا تفاعلية وتمارين عملية تغطي جميع المفاهيم الأساسية للبرمجة.
🔗 freeCodeCamp – Python Loops Guide


🔹 7. قناة YouTube – The Net Ninja

قناة تعليمية مشهورة تقدم شروحات برمجية قصيرة وواضحة بأسلوب سهل الفهم.
🔗 The Net Ninja – Python Tutorials


💡 نصيحة أخيرة:

استخدم هذه المصادر بشكل تطبيقي، أي لا تكتفِ بالقراءة فقط —
جرب كتابة الأكواد بنفسك، غيّر القيم، وراقب النتائج.
لأن الممارسة هي المفتاح الحقيقي لإتقان الحلقات التكرارية وكل مفاهيم البرمجة.

تعليقات