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