جملة تكرار (دوران) 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 تتأكد من صحة الشرط بعد تنفيذ مجموعة التعليمات البرمجية. أي أن البرنامج في حلقة الدوران يتم تنفيذه على الأقل مرة واحدة بغضّ النظر عن قيمة الشرط. بعد هذا تستمر عملية الدوران وتكرار تنفيذ البرنامج حتى يتحول الشرط من الصحّة إلى الخطأ.