حلقة while
نكرّر الأوامر ما دام شرط معيّن صحيحًا. ⏱ نحو 20 دقيقة.
- تشرح فائدة التكرار.
- تكتب حلقة
whileبأجزائها الثلاثة: بداية وشرط وتغيير. - تجمع الأعداد بالحلقة.
- تتجنب الحلقة التي لا تنتهي.
١لماذا التكرار؟
لو أردنا طباعة الأعداد من 1 إلى 100 لكتبنا 100 سطر! الحلقة تكرّر الأوامر نفسها بدلًا منّا. وفي الحياة: «اطرق الباب ما دام لم يُفتح».
while تعني «ما دام»: تكرّر الأسطر التي تحتها ما دام الشرط صحيحًا:
i = 1while i <= 5: print(i) i += 1
٢كيف تعمل الحلقة؟
تابع الحلقة خطوة بخطوة. اضغط «التالي»:
i = 1while i <= 3: print(i) i += 1
كل حلقة لها ثلاثة أجزاء: بداية (i = 1)، وشرط (i <= 3)، وتغيير يقرّبنا من النهاية (i += 1).
٣العدّاد والمجموع
نستخدم الحلقة كثيرًا لجمع الأعداد. هذا برنامج يجمع الأعداد من 1 إلى 5:
total = 0i = 1while i <= 5: total += i i += 1print("المجموع:", total)
٤الحلقة التي لا تنتهي
إذا نسينا تغيير المتغيّر يبقى الشرط صحيحًا للأبد، فلا يتوقف البرنامج:
i = 1while i <= 5: print(i)
i = 1while i <= 5: print(i) i += 1
في الكود الخطأ تبقى i = 1 دائمًا، فيطبع 1 بلا نهاية. في Thonny أوقفه بالزر ⏹، وفي هذا الموقع يتوقف تلقائيًّا بعد ثوانٍ.
٥التكرار حتى يُدخل المستخدم الصحيح
تفيد while عندما لا نعرف عدد مرات التكرار مسبقًا، مثل طلب كلمة المرور حتى تكون صحيحة:
password = input("كلمة المرور: ")while password != "1234": password = input("خطأ، حاول مرة أخرى: ")print("تم الدخول")
📎 للاستزادة (اختياري): العدّ التنازلي
n = 3while n > 0: print(n) n -= 1print("انطلق!")
توقّع وتحقّق
متى تتوقف حلقة while؟
كم مرة يُطبع «مرحبًا» إذا كانت i تبدأ من 1 والشرط i <= 4 وi تزيد بواحد؟
i = 1، 2، 3، 4.ماذا يحدث إذا نسينا i += 1؟
ما قيمة total في النهاية: يبدأ من 0 ونضيف i من 1 إلى 4؟
1 + 2 + 3 + 4 = 10.الخلاصة
whileتكرّر الأسطر التي تحتها ما دام الشرط صحيحًا.- أجزاء الحلقة: بداية، وشرط، وتغيير يقرّب من النهاية.
- للجمع: نبدأ
total = 0ونضيف إليه في كل دورة. - نسيان التغيير يعطي حلقة لا تنتهي.
تحدٍّ برمجي: جدول ضرب 3
سهلاكتب برنامجًا يطبع جدول ضرب العدد 3 من 1 إلى 10 باستخدام while.
- ابدأ بـ
i = 1. - كرّر ما دام
i <= 10. - اطبع:
3 × i= الناتج.
ابدأ من هذا الكود، واضغط ▶ شغّل هنا لتكتب حلّك وتجرّبه مباشرة:
i = 1💡 تلميح 1
print("3 ×", i, "=", 3 * i)💡 تلميح 2
i += 1 داخل الحلقة.حاول بنفسك أولًا؛ للمسألة أكثر من حلّ صحيح.
i = 1while i <= 10: print("3 ×", i, "=", 3 * i) i += 1