🔄 فهم حلقة While في بايثون: التكرار الذكي الذي يعتمد على الشرط
اليوم سنتعرف على أحد أهم أدوات التحكم في تدفق البرنامج في لغة Python: حلقة While. إذا كنت تتذكر حلقة For التي تعلمناها سابقاً، فحلقة While تقدم طريقة مختلفة وأكثر مرونة للتكرار.
💡 ما هي حلقة While؟
حلقة While هي هيكل تحكم يسمح لك بتكرار تنفيذ كتلة من الأوامر مراراً وتكراراً، طالما أن شرطاً معيناً يبقى صحيحاً (True).
فكر فيها كجملة شرطية (if) لكنها تستمر في العمل مرة تلو الأخرى ما دام الشرط محققاً.
الصيغة الأساسية:
while الشرط:
# الأوامر التي ستتكرر
# طالما الشرط صحيح
⚙️ كيف تعمل حلقة While خطوة بخطوة
لنفهم آلية العمل من خلال خطوات بسيطة:
- التقييم: يتحقق المفسر أولاً من قيمة الشرط الموجود بعد كلمة
while. - التنفيذ: إذا كان الشرط صحيحاً (True)، ينفذ جميع الأوامر الموجودة داخل جسم الحلقة (المسافة البادئة).
- التكرار: بعد الانتهاء من تنفيذ جميع الأوامر داخل الحلقة، يعود المفسر إلى بداية الحلقة ويقيم الشرط مرة أخرى.
- التوقف: إذا أصبح الشرط خاطئاً (False)، يخرج البرنامج من الحلقة ويواصل تنفيذ الأوامر التي تليها.
📝 مثال بسيط: العد التنازلي
لنبدأ بمثال واضح جداً: عد تنازلي من 5 إلى 1.
# تهيئة متغير العداد
count = 5
# حلقة while - تستمر طالما count أكبر من 0
while count > 0:
print(count) # طباعة الرقم الحالي
count = count - 1 # تقليل قيمة العداد بمقدار 1 (التحضير للدورة التالية)
print("انتهى العد!")
النتيجة:
5
4
3
2
1
انتهى العد!
💡 شرح المثال:
- بدأنا بقيمة
count = 5. - الشرط
count > 0كان صحيحاً، فنفذنا الأوامر داخل الحلقة. - في كل دورة، نطبع الرقم ثم نخفض قيمته بمقدار 1.
- عندما يصبح
count = 0، الشرط0 > 0يصبح خاطئاً، فتتوقف الحلقة.
⚠️ احذر! الحلقة اللانهائية (Infinite Loop)
أكبر خطر عند استخدام حلقة While هو إنشاء حلقة لانهائية - حلقة لا تتوقف أبداً لأن شرطها يبقى صحيحاً دائماً.
مثال على حلقة لانهائية:
# تحذير: هذه حلقة لانهائية! لا تجربها إلا إذا كنت تعرف كيف توقف البرنامج قسراً.
while True:
print("هذه الرسالة ستتكرر إلى الأبد!")
في المثال أعلاه، الشرط هو True (صحيح دائماً)، لذلك لن تتوقف الحلقة أبداً. لتجنب ذلك، يجب أن تضمن وجود آلية داخل الحلقة تغير من حالة الشرط في النهاية.
🔄 المزيد من الأمثلة العملية
المثال ١: التحقق من إدخال المستخدم
# نطلب من المستخدم إدخال كلمة مرور حتى يدخلها بشكل صحيح
password = "" # نبدأ بقيمة فارغة
while password != "python123":
password = input("أدخل كلمة المرور: ")
print("تم الدخول بنجاح! 🎉")
المثال ٢: جمع الأرقام حتى يدخل المستخدم صفر
total = 0 # مجموع الأرقام
number = 1 # قيمة ابتدائية غير صفر لبدء الحلقة
print("أدخل الأرقام لجمعها (أدخل 0 للتوقف):")
while number != 0:
number = int(input("ادخل رقماً: "))
total = total + number # إضافة الرقم إلى المجموع
print("المجموع الكلي هو:", total)
🤔 متى نستخدم While بدلاً من For؟
| حلقة For | حلقة While |
|---|---|
| عندما تعرف عدد مرات التكرار مسبقاً | عندما لا تعرف عدد مرات التكرار مسبقاً |
| للتكرار على عناصر متسلسلة (قائمة، نص، إلخ) | عندما يعتمد التكرار على شرط منطقي |
for i in range(5): |
while x < 10: |
القاعدة البسيطة: استخدم for عندما تسأل "كم مرة؟"، واستخدم while عندما تسأل "إلى متى؟".
🎯 خلاصة الدرس
- حلقة While تكرر الأوامر طالما أن الشرط صحيح.
- يجب أن يكون هناك تغيير داخل الحلقة يؤثر على الشرط لتجنب الحلقات اللانهائية.
- مثالية للحالات التي لا تعرف فيها عدد مرات التكرار مسبقاً.
- أكثر مرونة من
forفي المواقف التي يعتمد فيها التكرار على شرط معقد.
🎓 اختبر نفسك
التعليقات
شاركنا رأيك أو أسئلتك حول هذا المقال