C++ افعل…أثناء التكرار مع الأمثلة

⚡ ملخص ذكي

حلقة do-while في C++ تُنفّذ هذه الحلقة البرمجية كتلة من التعليمات البرمجية مرة واحدة، ثم تُكرّرها طالما بقي شرطٌ ما صحيحًا. ستتعلم هنا كيفية عمل حلقة do-while، وبنيتها، ومتى تُستخدم، بالإضافة إلى أمثلة توضيحية.

  • 🔂 ما هو : تقوم حلقة "do-while" بتنفيذ جسمها مرة واحدة، ثم تتكرر طالما أن الشرط صحيح.
  • ✅ يركض أولاً: يتم تنفيذ الجسم دائمًا مرة واحدة على الأقل قبل التحقق من الشرط.
  • 🧾 بناء الجملة: do { statements } while(condition); ينتهي بفاصلة منقوطة.
  • 🎯 متى يجب استخدام: استخدمه عندما يجب تشغيل الكود مرة واحدة على الأقل، مثل القوائم.
  • 🤖 مساعدة الذكاء الاصطناعي: أدوات الذكاء الاصطناعي مثل GitHub Copilot للكتابة والتصحيح C++ يتكرر على الفور.

C++ افعل بينما حلقة

ما هي حلقة القيام أثناء العمل؟

تقوم حلقة do-while بتكرار جزء من ملف C++ البرنامج عدة مرات. في حلقة do-while، تتم إضافة تعبير الاختبار في أسفل الحلقة. يأتي جسم الحلقة قبل تعبير الاختبار. ولهذا السبب يجب تنفيذ نص الحلقة لمرة واحدة، حتى عندما يتم تقييم تعبير الاختبار إلى خطأ في الاختبار الأول.

متى تستخدم حلقة do-while؟

يجب استخدام حلقة do-while عندما لا يكون عدد التكرارات ثابتًا، ويجب تنفيذ الحلقة مرة واحدة على الأقل. ال C++ مترجم ينفذ نص الحلقة أولاً قبل تقييم الحالة. وهذا يعني أن الحلقة يجب أن ترجع نتيجة. وهذا هو الحال حتى عندما يتم تقييم حالة الاختبار على أنها خاطئة في التقييم الأول. وبما أن جسم الحلقة قد تم تنفيذه بالفعل، فيجب عليه إرجاع النتيجة.

بناء الجملة

بناء الجملة الأساسي ل C++ القيام أثناء الحلقة كما يلي:

do{    
//code 
}while(condition);  

الشرط هو اختبار التعبير. يجب أن يكون صحيحًا حتى يتم تنفيذ الحلقة. تشير العلامة { و } إلى نص حلقة do while. يأتي قبل الشرط. وبالتالي يتم تنفيذه قبل الشرط.

كيف تعمل حلقة do-while؟

افعل بينما حلقة
C++ افعل أثناء مخطط التدفق

شرح مخطط التدفق:

  1. بداية تنفيذ الحلقة.
  2. نص الفعل أثناء الحلقة.
  3. تعبير الاختبار أو الشرط المراد تقييمه.
  4. إذا كان تعبير الاختبار صحيحا، فإن C++ قام المترجم بتنفيذ نص تنفيذ الحلقة.
  5. إذا كان تعبير الاختبار خاطئًا، فإن C++ يقوم المترجم بتنفيذ العبارات بعد نص الحلقة.
  6. البيانات التي تأتي بعد هيئة الحلقة.

مثال 1

#include <iostream>
using namespace std;
int main() {
	// Local variable 
	int x = 1;
	do {
		cout << "X is: " << x << endl;
		x = x + 1;
	} while (x < 5);
	return 0;
}

الإخراج:

افعل بينما حلقة

فيما يلي لقطة شاشة للكود:

افعل بينما حلقة

Code التفسير:

  1. بما في ذلك ملف رأس iostream في التعليمات البرمجية الخاصة بنا. سيسمح لنا بالقراءة من وحدة التحكم والكتابة إليها.
  2. تضمين مساحة الاسم std لاستخدام فئاتها ووظائفها دون استدعائها.
  3. استدعاء الوظيفة الرئيسية () التي يجب إضافة منطق البرنامج بداخلها. تشير العلامة { إلى بداية نص الدالة main().
  4. تعليق. ال C++ سوف المترجم تخطي هذا.
  5. الإعلان عن متغير صحيح x وتعيينه بقيمة 1.
  6. إنشاء حلقة القيام بها. علامة { بداية جسم الحلقة.
  7. لطباعة قيمة المتغير x بجانب نص آخر على وحدة التحكم. النهاية هي أ C++ الكلمة الأساسية تعني خط النهاية.
  8. زيادة قيمة x بمقدار 1 بعد كل تكرار.
  9. نهاية جسم الحلقة. تمت إضافة تعبير الاختبار إلى نهاية نص الحلقة. يختبر ما إذا كانت قيمة x أقل من 5.
  10. يجب أن تقوم الدالة main() بإرجاع قيمة إذا كان البرنامج يعمل بشكل جيد.
  11. نهاية نص الدالة main().

مثال 2

#include <iostream>
using namespace std;
int main()
{
	int num, sum = 0;
	do {

		cout << "Enter a number: ";

		cin >> num;

		sum += num;

	} while (num != 0);
	cout << "Sum is " << sum;

	return 0;
}

الإخراج:

افعل بينما حلقة

فيما يلي لقطة شاشة للكود:

افعل بينما حلقة

Code التفسير:

  1. بما في ذلك ملف رأس iostream في التعليمات البرمجية الخاصة بنا. سيسمح لنا بالقراءة من وحدة التحكم والكتابة إليها.
  2. تضمين مساحة الاسم std لاستخدام فئاتها ووظائفها دون استدعائها.
  3. استدعاء الوظيفة الرئيسية () التي يجب إضافة منطق البرنامج بداخلها.
  4. تشير العلامة { إلى بداية نص الدالة main().
  5. الإعلان عن متغيرين صحيحين، num، وsum. تمت تهيئة المبلغ المتغير إلى 0.
  6. إنشاء حلقة القيام بها. علامة { بداية جسم الحلقة.
  7. طباعة النص "أدخل رقمًا:" على وحدة التحكم.
  8. قراءة مدخلات المستخدم من وحدة التحكم وتخزين القيمة في متغير num. إن cin (إدخال وحدة التحكم) هي وظيفة تقرأ إدخالات المستخدم.
  9. تؤدي إضافة قيمة num إلى قيمة المجموع وتخزينها إلى الحصول على مجموع متغير.
  10. تشير العلامة } إلى نهاية نص الحلقة. تمت إضافة تعبير الاختبار إلى نهاية نص الحلقة. يختبر ما إذا كانت القيمة التي أدخلها المستخدم صحيحة للتأكد من أنها ليست 0. يشير != إلى عدم تساوي المشغل. إذا أدخل المستخدم القيمة 0، فيجب إنهاء الحلقة.
  11. طباعة قيمة المبلغ المتغير على وحدة التحكم إلى جانب نص آخر.
  12. يجب أن تقوم الدالة main() بإرجاع قيمة إذا كان البرنامج يعمل بشكل جيد.
  13. نهاية نص الدالة main().

متداخلة تفعل أثناء الحلقة

In C++، من الممكن بالنسبة لنا إنشاء حلقة تنفيذ واحدة داخل حلقة تنفيذ كاملة أخرى. وينتج عن هذا حلقة عمل متداخلة.

بناء الجملة

do{
statement(s)
do{
statement(s)
}while(condition);
statement(s)
}while(condition);

تشير عبارة do الأولى إلى الجزء do من حلقة do-while الخارجية.

تشير عبارة do الثانية إلى جزء do من حلقة do-while الداخلية.

تشير عبارة while الأولى إلى حالة الاختبار للحلقة الداخلية.

تشير العبارة while الثانية إلى حالة الاختبار للحلقة الخارجية.

كيف يتم التداخل أثناء عمل الحلقة

تعمل حلقة do while المتداخلة على النحو التالي:

الخطوة 1 : يتم تنفيذ التهيئة أولاً ومرة ​​واحدة.

الخطوة 2 : يتم تنفيذ العبارات (do) مرة واحدة.

الخطوة 3 : تعبير الاختبار هو التقييم عن طريق التحكم في التدفق.

الخطوة 4 : إذا كان صحيحا، سيتم تنفيذ الحلقة الداخلية.

الخطوة 5 : يتم تحديث بيان (بيانات) التحديث.

الخطوة 6 : يتم تشغيل العملية بشكل متكرر حتى يصبح تعبير الاختبار خاطئًا.

الخطوة 7 : عندما يصبح تعبير الاختبار خطأ، يتم الخروج من الحلقة الداخلية وينتقل التحكم إلى الحلقة الخارجية.

الخطوة 8 : يتم تقييم حالة الاختبار مرة أخرى.

الخطوة 9 : إذا كان صحيحًا، فسيتم تنفيذ العبارة (العبارات) لإرجاع خطأ.

الخطوة 10 : تنفيذ توقفات الحلقة والتحكم في الانتقال إلى البيانات بعد الحلقة.

مثال

#include <iostream>  
using namespace std;
int main() {
	int a = 1;
	do {
		int b = 1;
		do {
			cout << a << "\n";
			b++;
		} while (b <= 3);
		a++;
	} while (a <= 3);
}

الإخراج:

متداخلة تفعل أثناء الحلقة

فيما يلي لقطة شاشة للكود:

متداخلة تفعل أثناء الحلقة

Code التفسير:

  1. بما في ذلك ملف رأس iostream في التعليمات البرمجية الخاصة بنا. سيسمح لنا بالقراءة من وحدة التحكم والكتابة إليها.
  2. تضمين مساحة الاسم std لاستخدام فئاتها ووظائفها دون استدعائها.
  3. استدعاء الوظيفة الرئيسية () التي يجب إضافة منطق البرنامج بداخلها. تشير العلامة { إلى بداية نص الدالة main().
  4. الإعلان عن متغير عدد صحيح a وتعيينه بقيمة 1.
  5. إنشاء حلقة do-while الخارجية. علامة { بداية جسم الحلقة الخارجية.
  6. الإعلان عن متغير صحيح b وتعيين قيمة له 1.
  7. إنشاء حلقة do-while الداخلية. يمثل { بداية جسم الحلقة الداخلية.
  8. لطباعة قيمة المتغير a على وحدة التحكم. "\n" هو حرف سطر جديد ينقل مؤشر الماوس إلى السطر التالي.
  9. زيادة قيمة b بمقدار 1 بعد كل تكرار.
  10. نهاية جسم الحلقة الداخلية. تمت إضافة تعبير الاختبار إلى نهاية نص الحلقة. يختبر ما إذا كانت قيمة b أقل من أو تساوي 5.
  11. زيادة قيمة a بمقدار 1 بعد كل تكرار.
  12. نهاية جسم الحلقة الخارجية. تمت إضافة تعبير الاختبار إلى نهاية نص الحلقة. يختبر ما إذا كانت قيمة a أقل من أو تساوي 3.
  13. نهاية نص الدالة main().

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

حلقة "do-while" هي بنية تحكم تُنفذ غرضها مرة واحدة ثم تُكرره طالما أن الشرط صحيح. ويتم التحقق من الشرط بعد كل دورة، وليس قبلها.

تتحقق حلقة while من الشرط قبل تنفيذ محتواها، لذا قد لا تُنفذ أي مرة. أما حلقة do-while فتنفذ محتواها أولاً ثم تتحقق من الشرط بعد ذلك، لذا فهي تُنفذ دائمًا مرة واحدة على الأقل.

الصيغة هي do { statements } while(condition);. يتم تنفيذ الجزء الموجود بين قوسين معقوفين أولاً، ثم يتم اختبار الشرط الموجود بين قوسين، وتنتهي الحلقة بفاصلة منقوطة.

استخدم حلقة do-while عندما يجب تشغيل الكود مرة واحدة على الأقل بغض النظر عن الشرط، مثل عرض قائمة أو التحقق من صحة إدخال المستخدم.

حلقة التكرار المتداخلة هي حلقة تكرار موضوعة داخل حلقة تكرار أخرى. تُكمل الحلقة الداخلية جميع دوراتها في كل دورة من دورات الحلقة الخارجية.

تقوم المساعدات الذكية مثل GitHub Copilot بإنشاء حلقات do-while من تعليق، والتحويل بين أنواع الحلقات، ووضع علامات على الشروط التي يمكن أن تتسبب في حلقة لا نهائية.

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

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

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