حلقات while و until

تعديل
نسخ الدرس
تحميل الدرس

حلقات while و until

في البرمجة، نحتاج أحياناً لتكرار شيفرة معين عدة مرات. بدلاً من كتابة نفس الشيفرة مراراً وتكراراً، نستخدم الحلقات التكرارية (Loops). في هذا الدرس، سنتعلم حلقتي while و until.

حلقة while (طالما)

حلقة while تُكرر الشيفرة طالما الشرط صحيح (true). بمجرد أن يصبح الشرط خاطئاً (false)، تتوقف الحلقة.

البنية الأساسية

مثال بسيط: العد من 1 إلى 5

الناتج:

كيف تعمل الحلقة؟

  1. التحقق من الشرط: هل counter <= 5؟ (هل 1 <= 5؟ نعم)
  2. تنفيذ الشيفرة: اطبع counter، ثم زِد counter بـ 1
  3. العودة للخطوة 1: تحقق من الشرط مجدداً
  4. التكرار: يستمر حتى يصبح الشرط false (عندما counter = 6)

مثال: العد التنازلي

الناتج:

أهمية تحديث المتغير

تحذير مهم: إذا لم تُحدّث المتغير داخل الحلقة، ستحصل على حلقة لا نهائية (Infinite Loop)!

ملاحظة: في المتصفح، ستتوقف الشيفرة تلقائياً بعد 60 ثانية لمنع تجميد الصفحة.

أمثلة عملية

مثال 1: جمع الأرقام من 1 إلى 10

الناتج:

مثال 2: مضاعفة الرقم حتى يتجاوز 100

الناتج:

لاحظ أن 128 طُبعت لأن الشرط يُفحص قبل التنفيذ، و 64 <= 100.

مثال 3: طباعة أعداد فردية

الناتج:

حلقة until (حتى)

حلقة until هي عكس حلقة while. تُكرر الشيفرة حتى يصبح الشرط صحيحاً.

  • while = كرر طالما الشرط صحيح
  • until = كرر حتى يصبح الشرط صحيحاً (أي طالما الشرط خاطئ)

البنية الأساسية

مثال: العد من 1 إلى 5 باستخدام until

الناتج:

مقارنة while و until

نفس النتيجة، طريقتان مختلفتان:

whileuntilالمعنى
while x <= 5until x > 5طالما x أصغر أو يساوي 5
while x < 10until x >= 10طالما x أصغر من 10
while x != 0until x == 0طالما x لا يساوي صفر

مثال: العد التنازلي باستخدام until

الناتج:

متى تستخدم while ومتى تستخدم until؟

استخدم while عندما:

  • تريد الاستمرار طالما شيء ما صحيح
  • الشرط الطبيعي للاستمرار

استخدم until عندما:

  • تريد الاستمرار حتى يحدث شيء ما
  • تنتظر تحقق شرط معين

الحلقات السطرية (Inline Loops)

يمكن كتابة حلقات بسيطة في سطر واحد باستخدام المُعدِّل (modifier):

الناتج (لكليهما):

ملاحظة: الحلقات السطرية أقل وضوحاً، استخدمها فقط للعمليات البسيطة جداً.

أمثلة عملية متقدمة

مثال 1: إيجاد العوامل

الناتج:

مثال 2: حساب المضروب (Factorial)

الناتج:

مثال 3: جدول الضرب

الناتج:

حلقات متداخلة (Nested Loops)

يمكن وضع حلقة داخل حلقة أخرى:

الناتج:

مثال: طباعة مثلث من النجوم

الناتج:

الأخطاء الشائعة

1. نسيان تحديث المتغير

2. شرط لا يتحقق أبداً

3. خطأ في اتجاه المقارنة

جدول ملخص

الحلقةمتى تستمرمتى تتوقفالاستخدام
while شرططالما الشرط trueعندما يصبح الشرط falseالاستمرار بشرط
until شرططالما الشرط falseعندما يصبح الشرط trueالانتظار لتحقق شرط

نصائح مهمة

  1. تأكد من تحديث المتغير - لتجنب الحلقات اللانهائية
  2. تحقق من الشرط الابتدائي - تأكد أن الحلقة ستنفذ مرة واحدة على الأقل إذا أردت
  3. استخدم += و -= - لتبسيط شيفرة تحديث المتغيرات
  4. اختر while أو until - بناءً على أيهما أوضح للقراءة
  5. احذر من الحلقات المتداخلة - قد تؤثر على الأداء إذا كثرت التكرارات

تمرين: العد التنازلي من 10

حان وقت التطبيق! في محرر الشيفرة على اليسار:

المطلوب: اكتب برنامجاً يعد تنازلياً من 10 إلى 1، ثم يطبع "انطلق!".

  1. عرّف متغير countdown = 10
  2. استخدم حلقة while للعد التنازلي
  3. اطبع كل رقم في سطر منفصل
  4. بعد انتهاء الحلقة، اطبع "انطلق!"

الناتج المتوقع:

تلميح: استخدم countdown -= 1 أو countdown = countdown - 1 لتقليل القيمة في كل تكرار.


تذكّر: الحلقات أداة قوية، لكن تأكد دائماً أن لديك طريقة للخروج منها!