جملة تكرار (دوران) Do – while
البناء العام لحلقة do-while كما يلي:
do { // code to execute } while (condition);
الـ condition
الشرط يمكن أن يكون أي تعبير منطقي Boolean. حلقة دوران do-while تنفذ مجموعة من التعليمات البرمجية على الأقل مرة واحدة، ثم تنتقل إلى الشرط condition
. إذا كان الشرط condition
صحيحًا، يتم تنفيذ مجموعة التعليمات البرمجية مجددًا. وتستمر الحلقة بالدوران وتكرار تنفيذ التعليمات البرمجية حتى تصبح قيمة الشرط condition
خاطئة.
فيما يلي مثال على حلقة التكرار do-while:
#include <iostream> using namespace std; int main() { int c = 0, num = 0, sum = 0; do { cout << "Enter a number: "; cin >> num; sum += num; c++; } while (c <= 4); cout << "sum = " << sum << endl; return 0; }
يطالب هذا البرنامج المستخدم بإدخال أربعة أرقام ثم يطبع مجموع هذه الأرقام إلى شاشة النتائج. يستخدم البرنامج حلقة do-while للتأكد من قيام المستخدم بإدخال رقم واحد على الأقل، حتى لو قام بإدخال رقم غير متاح في المرة الأولى.
فيما يلي شرح خطوة بخطوة لما يحدث عند تشغيل هذا البرنامج:
- يعرّف المترجم compiler المتغير
c
,num
، وsum
ويهيئها إلى القيم 0، 0 و0 على التوالي. - الـ
do
يبتدئ حلقة تكرار do-while - الـ
cout << "Enter a number: ";
تطبع رسالة “Enter a number: ” إلى صفحة النتائج - الـ
cin >> num;
تقوم بأخذ رقم من المستخدم وتخزينه في المتغيرnum
. - الـ
sum += num;
يقوم بزيادة قيمة المتغيرsum
حسب قيمة المتغيرnum
. - الـ
c++;
يقوم بزيادة قيمة المتغيرc
بمقدار 1. - الـ
while (c <= 4);
تقوم بالتأكد من قيمة الشرط لجملة التكرار do-while. إذا كانت قيمة المتغيرc
أقل من 4، ستستمر الحلقة في الدوران. غير هذا ستتوقف حلقة التكرار عن الدوران. - إذا كان الشرط صحيحًا في حلقة الدوران، سيتم تنفيذ مجموعة التعليمات البرمجية داخل الحلقة.
- سيتم تكرار الخطوات 3-7 إلى أن تصبح قيمة الشرط خاطئة.
- عند إنتهاء حلقة الدوران، سيقوم البرنامج بطباعة الرسالة "sum = " إلى شاشة النتائج، متبوعة بقيمة الـ
sum
.
هنا مثال على المخرجات لهذا البرنامج:
Enter a number: 10 Enter a number: 20 Enter a number: 30 Enter a number: 40 sum = 100
يمكن استخدام حلقات Do-while لحل مجموعة متنوعة من المشكلات، مثل:
- التحقق من صحة مدخلات المستخدم
- التحقق من استيفاء شرط معين
- أداء مهمة لعدد معين من المرات
الاختلافات بين حلقة while وحلقة do – while:
الخاصية | حلقة while | حلقة do-while |
---|---|---|
التحقق من الشرط | قبل أن يتم تنفيذ مجموعة التعليمات البرمجية | بعد أن يتم تنفيذ مجموعة التعليمات البرمجية |
ضمان التنفيذ | لا يتم ضمان تنفيذ مجموعة التعليمات البرمجية على الأقل مرة واحدة | يتم ضمان تنفيذ مجموعة التعليمات البرمجية على الأقل مرة واحدة |
شرح الجدول
- حلقة while: جملة الدوران while تتأكد من صحة الشرط قبل تنفيذ مجموعة التعليمات البرمجية. إذا كان الشرط صحيحًا، يتم تنفيذ الأوامر البرمجية. وتستمر عملية الدوران وتكرار تنفيذ البرنامج حتى يتحول الشرط من الصحّة إلى الخطأ.
- حلقة do-while: جملة الدوران do-while تتأكد من صحة الشرط بعد تنفيذ مجموعة التعليمات البرمجية. أي أن البرنامج في حلقة الدوران يتم تنفيذه على الأقل مرة واحدة بغضّ النظر عن قيمة الشرط. بعد هذا تستمر عملية الدوران وتكرار تنفيذ البرنامج حتى يتحول الشرط من الصحّة إلى الخطأ.