الإيقاف والمتابعة

5.4 الإيقاف والمتابعة

أهداف التعلم

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

  • تحليل تنفيذ حلقة التكرار باستخدام تعليمات break و continue.
  • استخدام تعليمات التحكم break و continue في حلقات التكرار while و for.

Break

تُستخدم تعليمة break داخل حلقة تكرار for أو while للسماح بتنفيذ البرنامج بالخروج من الحلقة بمجرد تفعيل شرط معين. يمكن استخدام تعليمة break لتحسين كفاءة وقت التشغيل عندما لا يكون هناك حاجة لمزيد من تنفيذ الحلقة.

مثال: حلقة تكرار تبحث عن الحرف "a" في سلسلة نصية معينة تُسمى user_string. الحلقة أدناه هي حلقة for عادية للمرور عبر جميع أحرف user_string. إذا عُثر على الحرف، فإن تعليمة break تُخرج التنفيذ من حلقة for. وبما أن المهمة قد أُنجزت، تُتجاوَز بقية تنفيذ حلقة for.

    user_string = "This is a string."
    for i in range(len(user_string)):
      if user_string[i] == 'a':
        print("Found at index:", i)
        break

نقطة تحقق

تعليمة break في حلقة while

حلقة لا نهائية

تُعد تعليمة break جزءًا أساسيًا من حلقة التكرار التي لا تحتوي على شرط إنهاء. تُعرف الحلقة التي لا تحتوي على شرط إنهاء باسم حلقة لا نهائية (infinite loop). مثال: حلقة لا نهائية تعد تصاعديًا بدءًا من 1 وتطبع قيمة العداد بينما تكون قيمة العداد أقل من 10. يُفعَّل شرط break عندما تصبح قيمة العداد مساوية لـ 10، وبالتالي يخرج تنفيذ البرنامج.

    counter = 1
    while True:
      if counter >= 10:
        break
      print(counter)
      counter += 1

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

استخدام تعليمة break

1.
ما خرج الشِفرة التالية؟
string_val = "Hello World"
for c in string_val:
  if c == " ":
    break
  print(c)
  1. Hello
  2. Hello World
  3. H
    e
    l
    l
    o
2.
بالنظر إلى الشِفرة التالية، كم مرة تُنفَّذ تعليمة print؟
i = 1
while True:
  if i%3 == 0 and i%5 == 0:
    print(i)
    break
  i += 1
  1. 0
  2. 1
  3. 15
3.
ما هي القيمة النهائية للمُتغيِّر i؟
i = 1
count = 0
while True:
  if i%2 == 0 or i%3 == 0:
    count += 1
  if count >= 5:
    print(i)
    break
  i += 1
  1. 5
  2. 8
  3. 30

Continue

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

نقطة تحقق

تعليمة continue في حلقة while

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

استخدام تعليمة continue

4.
بالنظر إلى الشِفرة التالية، كم مرة تُنفَّذ تعليمة print؟
i = 10
while i >= 0:
  i -= 1
  if i%3 != 0:
    continue
  print(i)
  1. 3
  2. 4
  3. 11
5.
ما خرج الشِفرة التالية؟
for c in "hi Ali":
  if c == " ":
    continue
  print(c)
  1. h
    i
    
    A
    l
    i
  2. h
    i
    A
    l
    i
  3. hi
    Ali

جرّب بنفسك

استخدام تعليمة التحكم break في حلقة تكرار

اكتب برنامجًا يقرأ قيمة سلسلة نصية ويطبع "Found" إذا كانت السلسلة النصية تحتوي على حرف مسافة. وإلا، يطبع "Not found".

جرّب بنفسك

استخدام تعليمة continue في حلقة تكرار

أكمل الشِفرة التالية بحيث يقوم البرنامج بحساب مجموع جميع الأعداد في القائمة my_list التي تكون أكبر من أو تساوي 5.