Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

حلقة While

جزء من قسم Fundamentals في رحلة Python على Coddy — الدرس 36 من 77.

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

لاستخدام حلقة while، اكتب:

while condition:
	code

سيتم تنفيذ الكود فقط إذا كان الشرط True.

عادةً ما يتم تكوين الشرط باستخدام عوامل المقارنة مثل <= (أقل من أو يساوي)، أو >= (أكبر من أو يساوي)، أو < (أقل من)، أو > (أكبر من)، أو == (يساوي). تستمر الحلقة في العمل طالما أن نتيجة تلك المقارنة هي True، وتتوقف بمجرد أن تصبح False.

داخل جسم الحلقة، تحتاج عادةً إلى تحديث المتغير الذي يتم التحقق منه. يتم ذلك باستخدام عوامل التعيين المعززة مثل += (الجمع والتعيين)، و -= (الطرح والتعيين)، و *= (الضرب والتعيين)، أو /= (القسمة والتعيين). على سبيل المثال، x *= 2 هو اختصار لـ x = x * 2. بدون تحديث المتغير، لن تتغير الحالة أبدًا وستستمر الحلقة في العمل إلى الأبد.

هناك العديد من حالات الاستخدام التي تحل فيها الحلقة while المشكلة، بينما لا تستطيع الحلقة for ذلك.

على سبيل المثال، لننظر في هذه المشكلة:

أوجد أصغر قوة للعدد 2 تكون أكبر من رقم معين.

لحلها سنستخدم حلقة while التي ستضرب القوة الحالية للعدد 2 في 2 بشكل متكرر حتى تصبح أكبر من الرقم المعطى:

number = 27
power_of_two = 1

while power_of_two <= number:
    power_of_two *= 2

print(power_of_two)

هنا، power_of_two <= number هو الشرط باستخدام عامل مقارنة، و power_of_two *= 2 يقوم بتحديث المتغير في كل تكرار باستخدام عامل تعيين تراكمي (augmented assignment operator). بمجرد أن يتجاوز power_of_two الـ number، يصبح الشرط False ويتوقف التكرار (loop).

challenge icon

التحدي

مبتدئ

اكتب برنامجاً يستقبل مدخلاً واحداً، وهو رقم float.

استخدم حلقة while لتقسيم المدخل على 2 طالما أن الرقم أكبر أو يساوي 3.5.

اطبع أول رقم يكون أصغر من 3.5.

ورقة مرجعية

تعمل حلقة while طالما أن الشرط هو True:

while condition:
    code

استخدم عوامل المقارنة لتشكيل الشرط: ==، <، >، <=، >=.
استخدم عوامل التعيين المركبة لتحديث المتغير في كل تكرار: +=، -=، *=، /=.

number = 27
power_of_two = 1

while power_of_two <= number:
    power_of_two *= 2  # تحديث المتغير لتجنب الحلقة اللانهائية

print(power_of_two)  # 32

جرّب بنفسك

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Fundamentals