بينما حلقة في Oracle بل/SQL مع المثال

⚡ ملخص ذكي

Oracle تُكرر حلقة WHILE في لغة PL/SQL كتلة من التعليمات البرمجية طالما بقي شرطٌ ما صحيحًا. وهي حلقة تحقق من الدخول، حيث تختبر شرط الخروج قبل كل تكرار، لذا قد لا تُنفذ الكتلة صفر مرة، ولا تحتاج إلى كلمة EXIT صريحة.

  • 🔁 الغرض: تستمر حلقة WHILE في العمل طالما أن الشرط صحيح وتتوقف بمجرد أن يصبح خاطئًا.
  • 🚦 التحقق من الدخول: يتم اختبار الشرط قبل الكتلة، لذلك يمكن تشغيل الحلقة صفر مرة.
  • 🧮 لا حاجة للخروج: يتم التحقق من صحة الشرط ضمنيًا في كل تكرار، لذلك لا يلزم وجود أمر EXIT صريح.
  • 🔢 عداد: يجب أن يتغير متغير داخل الكتلة حتى يصبح الشرط خاطئًا في النهاية.
  • ♾️ مخاطرة لا نهائية: إذا لم يفشل العداد في تحقيق الشرط أبدًا، فإن الحلقة تستمر إلى الأبد.
  • 🇧🇷 مقابل لصالح: استخدم WHILE عندما يكون عدد التكرارات غير معروف، واستخدم FOR عندما يكون ثابتًا.
  • 🚪 خروج مبكر: يمكن لـ EXIT WHEN الخروج من حلقة WHILE قبل أن يصبح الشرط خاطئًا.

Oracle PL/SQL أثناء الحلقة

ما هي حلقة التكرار While في لغة PL/SQL؟

استخدم حائط اللوب في لغة PL/SQL، تعمل هذه الطريقة بشكل مشابه لعبارة الحلقة الأساسية، باستثناء أن شرط الخروج يكون في بداية الحلقة. فهي تعمل كحلقة فحص الدخول، حيث لا يتم تنفيذ كتلة التعليمات البرمجية إلا إذا تحقق الشرط، لأن شرط الخروج يُفحص قبل التنفيذ.

لا يتطلب الأمر صراحةً استخدام الكلمة المفتاحية 'EXIT' للخروج من الحلقة، لأنه يتحقق من الشرط ضمنيًا في كل مرة.

PL/SQL أثناء بناء جملة الحلقة

WHILE <EXIT condition>
LOOP
<execution block starts>
.
.
.
<execution_block_ends>
END LOOP;
  • تشير الكلمة المفتاحية 'WHILE' إلى بداية الحلقة وتشير 'END LOOP' إلى نهايتها.
  • يتم تقييم شرط الخروج في كل مرة قبل أن يبدأ جزء التنفيذ في التنفيذ.
  • تحتوي كتلة التنفيذ على جميع التعليمات البرمجية التي يجب تشغيلها.
  • يمكن أن يحتوي جزء التنفيذ على أي عبارة قابلة للتنفيذ.

مثال Oracle PL/SQL أثناء الحلقة

في هذا المثال، نقوم بطباعة الأرقام من 1 إلى 5 باستخدام عبارة حلقة WHILE.

PL/SQL أثناء مثال الحلقة
PL/SQL أثناء مثال الحلقة
DECLARE
a NUMBER := 1;
BEGIN
dbms_output.put_line('Program started');
WHILE (a <= 5)
LOOP
dbms_output.put_line(a);
a:= a+1;
END LOOP;
dbms_output.put_line('Program completed');
END;
/

Code التفسير:

  • Code السطر 2: تعريف المتغير 'a' على أنه 'NUMBER' وتهيئته بالقيمة '1'.
  • Code السطر 4: طباعة عبارة "بدأ البرنامج".
  • Code السطر 5: تشير الكلمة المفتاحية 'WHILE' إلى بداية الحلقة وتتحقق مما إذا كانت قيمة 'a' أقل من أو تساوي 5.
  • Code السطر 7: يطبع قيمة "أ".
  • Code السطر 8: يزيد قيمة 'a' بمقدار 1.
  • Code السطر 9: تشير الكلمة المفتاحية 'END LOOP' إلى نهاية كتلة التنفيذ.
  • يستمر تنفيذ السطرين 7 و8 حتى تصل قيمة 'a' إلى 6، وعندها تُرجع الحالة FALSE ويخرج التحكم. حلقة.
  • Code السطر 10: طباعة عبارة "تم إكمال البرنامج".

حلقة WHILE مقابل حلقة FOR مقابل الحلقة الأساسية

توفر لغة PL/SQL ثلاثة أنواع من الحلقات، واختيار النوع المناسب يُحافظ على وضوح الكود. تُناسب حلقة WHILE التكرار المشروط، بينما تُناسب الحلقتان الأخريان العدد الثابت أو الخروج المُتحكم به بشكل صريح.

أنشوطة معايير الخروج يُستخدم عند
حلقة WHILE يصبح الشرط في الأعلى خاطئًا عدد التكرارات غير معروف
لحلقة يصل العداد إلى نهاية المدى عدد التكرارات معروف
حلقة أساسية مخرج صريح في الكتلة يتم التحكم في المخرج يدويًا

لأن حلقة WHILE تختبر شرطها في البداية، فقد لا يتم تنفيذ جسمها مطلقًا إذا كان الشرط خاطئًا منذ البداية. هذا هو الفرق الرئيسي بينها وبين الحلقة العادية، التي يتم تنفيذ جسمها دائمًا مرة واحدة على الأقل.

تجنب حلقة التكرار اللانهائية

تعتمد حلقة WHILE كلياً على وصول المتغير المتحكم إلى شرط الخروج. إذا لم يصل إليه، تستمر الحلقة في العمل إلى ما لا نهاية ويتوقف البرنامج. ثلاث عادات تمنع حدوث ذلك:

  • قم بتغيير العداد في كل تكرار. يقوم المثال بزيادة قيمة 'a' داخل الحلقة؛ إزالة هذا السطر ستؤدي إلى حلقة لا نهائية.
  • اختبر الحدود. تأكد من أن الشرط يمكن أن يصبح خاطئًا بالفعل بالنسبة للقيمة الابتدائية، وليس فقط في الحالة المثالية.
  • أضف مخرج أمان عند. بالنسبة لحلقة تعتمد على البيانات، فإن عبارة EXIT WHEN عند الوصول إلى الحد الأقصى لعدد التكرارات تعمل كحماية ضد قيمة غير متوقعة.

عندما يكون عدد التكرارات ثابتًا بالفعل، فإن حلقة FOR تزيل المخاطر تمامًا، لأن عدادها تتم إدارته تلقائيًا.

الأسئلة الشائعة

نعم. لأن الشرط يُفحص قبل تنفيذ الكتلة، فإذا كان خاطئًا في البداية، فلن يتم تنفيذ الجزء الرئيسي من الكود. هذا الفحص هو الفرق الرئيسي عن الحلقة العادية، التي تُنفذ مرة واحدة دائمًا.

تأكد من أن أحد المتغيرات داخل الحلقة يتغير باتجاه شرط الخروج في كل تكرار. إضافة عبارة EXIT WHEN عند الوصول إلى الحد الأقصى للعدد يُعدّ إجراءً وقائيًا مفيدًا للحلقات التي تعتمد على البيانات.

استخدم حلقة WHILE عندما يكون عدد التكرارات غير معروف ويعتمد على شرط معين. استخدم حلقة FOR عند التكرار على نطاق ثابت، حيث تتم إدارة عدادها تلقائيًا.

في كثير من الأحيان، يمكن للذكاء الاصطناعي التحقق مما إذا كان المتغير المتحكم يتحرك نحو شرط الخروج، والتنبيه عند عدم حدوث ذلك. ومع ذلك، لا تزال الحلقة التي يعتمد خروجها على بيانات حية بحاجة إلى اختبار للتأكد.

نعم. على الرغم من أن حلقة WHILE تخرج عندما يصبح شرطها العلوي خاطئًا، إلا أن عبارة EXIT أو EXIT WHEN داخل جسم الحلقة يمكن أن تخرجها مبكرًا، وهو أمر مفيد للخروج في حالة خاصة.

تلخيص هذه التدوينة بـ: