حلقة التكرار الشرطي

5.1 حلقة التكرار الشرطي

أهداف التعلم

في نهاية هذا القسم، ينبغي أن تكون قادرًا على:

  • شرح بنية حلقة التكرار في بايثون.
  • استخدام حلقة التكرار الشرطي (while loop) لتنفيذ المهام المتكررة.

حلقة التكرار الشرطي

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

  • إذا كان صحيحًا، يُنفَّذ جسم الحلقة مرة أخرى على الأقل (وهو ما يُعرف بالتكرار مرة إضافية).
  • إذا لم يكن صحيحًا، ينتهي تنفيذ الحلقة وتُنفَّذ التعليمة التالية بعد جسم الحلقة.

نقطة تحقق

حلقة التكرار الشرطي

مفاهيم تطبيقية

مثال على حلقة التكرار الشرطي

متتالية فيبوناتشي هي سلسلة من الأعداد يكون فيها كل عدد مجموعَ العددين السابقين له. تبدأ متتالية فيبوناتشي بالعدد واحد مكررًا: 1، 1، 2، 3، . . . . تأمّل الشِفرة التالية التي تطبع جميع أعداد فيبوناتشي الأصغر من 20، ثم أجب عن الأسئلة التالية.

    # تهيئة أول رقمين في متتالية فيبوناتشي
    f = 1
    g = 1
    print (f, end = ' ')

    # تشغيل الحلقة طالما آخر رقم فيبوناتشي أقل من 20
    while g < 20:
      print(g, end = ' ')
      # حساب رقم فيبوناتشي التالي وتحديث آخر رقمين في المتتالية
      temp = f
      f = g
      g = temp + g
1.
كم مرة تُنفَّذ الحلقة؟
  1. 5
  2. 6
  3. 7
2.
ما قيمة المُتغيِّر g عندما يُقيَّم شرط حلقة التكرار الشرطي على أنه False؟
  1. 13
  2. 20
  3. 21
3.
ما القيم المطبوعة في الناتج؟
  1. 1 1 2 3 5 8 13
  2. 1 2 3 5 8 13
  3. 1 1 2 3 5 8 13 21

العد باستخدام حلقة التكرار الشرطي

يمكن استخدام حلقة التكرار الشرطي (while loop) للعد تصاعديًا أو تنازليًا. ويمكن استخدام مُتغيِّر عدّاد في تعبير الحلقة لتحديد عدد التكرارات المُنفَّذة. مثال: قد يرغب المبرمج في طباعة جميع الأعداد الزوجية بين 1 و 20. يمكن إنجاز ذلك باستخدام عدّاد يُهيَّأ بالقيمة 1. وفي كل تكرار، تزداد قيمة العداد بمقدار واحد، ويتحقق شرطٌ مما إذا كانت قيمة العداد زوجية أم لا. يُسمى مقدار التغيير في قيمة العداد عند كل تكرار حجم الخطوة. ويمكن أن يكون حجم الخطوة أي قيمة موجبة أو سالبة. فإذا كان موجبًا، يعدّ العداد تصاعديًا، وإذا كان سالبًا، يعدّ تنازليًا.

مثال 5.1

برنامج يطبع جميع الأعداد الفردية بين 1 و 10

    # التهيئة
    counter = 1

    # شرط حلقة التكرار الشرطي
    while counter <= 10:
      if counter % 2 == 1:
        print(counter)
      # العد تصاعديًا وزيادة قيمة العداد بمقدار 1 في كل تكرار
      counter += 1

نقطة تحقق

العد باستخدام حلقة التكرار الشرطي

مفاهيم تطبيقية

أمثلة العد باستخدام حلقة التكرار الشرطي

انظر إلى الشِفرة التالية، ثم أجب عن الأسئلة.

    n = 4
    while n > 0:
      print(n)
      n = n - 1
    
    print("value of n after the loop is", n)
4.
كم مرة تُنفَّذ الحلقة؟
  1. 3
  2. 4
  3. 5
5.
ما السطر الذي يُطبع أخيرًا في الناتج؟
  1. value of n after the loop is -1.
  2. value of n after the loop is 0.
  3. value of n after the loop is 1.
6.
ماذا يحدث إذا تم تغيير الشِفرة على النحو التالي؟
n = 4
while n > 0:
  print(n)
  # السطر المُعدَّل
  n = n + 1

print("value of n after the loop is", n)
  1. لن تعمل الشِفرة.
  2. ستعمل الشِفرة لتكرار إضافي واحد.
  3. لن تتوقف الشِفرة أبدًا عن التنفيذ.

جرّب بنفسك

قراءة المدخلات في حلقة التكرار الشرطي

اكتب برنامجًا يأخذ مدخلات المستخدم في حلقة التكرار الشرطي (while loop) حتى يُدخل المستخدم "begin". اختبر الشِفرة بقيم الإدخال المعطاة للتأكد من أن الحلقة لا تتوقف حتى يكون الإدخال "begin". بمجرد استلام الإدخال "begin"، اطبع "The while loop condition has been met.".

أدخل كلمات إدخال مختلفة لترى متى يُستوفى شرط حلقة التكرار الشرطي.

جرّب بنفسك

مجموع الأعداد الفردية

اكتب برنامجًا يقرأ قيمتين صحيحتين، n1 و n2. استخدم حلقة التكرار الشرطي (while loop) لحساب مجموع الأعداد الفردية بين n1 و n2 (بما في ذلك n1 و n2). تذكر أن العدد فردي إذا كان number % 2 != 0.