C++ تبديل بيان الحالة مع أمثلة البرنامج

⚡ ملخص ذكي

عبارة التبديل في C++ يختار هذا الأمر جزءًا واحدًا من التعليمات البرمجية لتنفيذه من بين عدة خيارات بناءً على قيمة متغير. ستتعلم هنا كيفية عمل عبارة switch، وبنيتها، وكلمة break، بالإضافة إلى أمثلة توضيحية.

  • 🔀 ما هو : تقوم عبارة switch باختيار حالة واحدة لتنفيذها بناءً على قيمة المتغير.
  • 🧾 بناء الجملة: switch(expr) مع تسميات الحالة، و break، و default اختياري.
  • ⏹️ استراحة: يوقف الأمر break تنفيذ الأمر من الانتقال إلى الحالة التالية.
  • 🎯 متى يجب استخدام: استخدمه لاستبدال سلاسل if-else الطويلة على متغير واحد.
  • 🤖 مساعدة الذكاء الاصطناعي: تقوم أدوات الذكاء الاصطناعي مثل GitHub Copilot بكتابة عبارات التبديل والتحقق منها.

C++ بيان التبديل

ما هو المفتاح؟

تساعد عبارة التبديل في اختبار مساواة المتغير مقابل مجموعة من القيم. تُعرف كل قيمة قيد المقارنة بحالة.

انظر إلى المفتاح باعتباره عبارة عن فرع متعدد الاتجاهات. يمكنك تحويل تنفيذ البرنامج إلى أجزاء مختلفة بناءً على قيمة التعبير.

متى تستخدم التبديل؟

المفتاح مشابه للسلم if…else…if. ومع ذلك، فإنه ينشئ رمزًا أنظف وسهل الفهم. كما أن المفتاح أسرع أيضًا مقارنة بسلم if…else…if. استخدم عبارة التبديل عندما تحتاج إلى مقارنة قيمة متغير بمجموعة من القيم الأخرى.

الكلمة الرئيسية استراحة

يتم استخدام الكلمة الأساسية Break داخل بيان التبديل. يمنع تشغيل الكود في الحالة التالية. أنه ينهي تسلسل البيان.

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

بناء الجملة

هنا هو بناء الجملة لبيان التبديل:

switch (variable)
{
    case 1: 
        break;
    case 2: 
        break;
    default: 
}	

يتم شرح المعلمات المذكورة أعلاه أدناه:

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

تبديل حالة البرنامج مثال 1

#include<iostream> 
using namespace std;
int main()
{
	int x = 20;
	switch (x)
	{
	case 10: 
		cout<<"X is 10"; break;

	case 20: 
		cout << "X is 20"; break;

	case 30: 
		cout << "X is 30"; break;

	default: 
		cout<<"X is not 10, 20 or 30"; break;

	}
	return 0;
}

الإخراج:

تبديل برنامج الحالة

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

تبديل برنامج الحالة

Code التفسير:

  1. بما في ذلك ملف رأس iostream في التعليمات البرمجية الخاصة بنا. سيسمح لنا بالقراءة من وحدة التحكم والكتابة إليها.
  2. بما في ذلك مساحة الاسم std لاستخدام فئاتها و وظائف دون أن يطلق عليه.
  3. استدعاء الوظيفة الرئيسية () التي يجب إضافة منطق البرنامج بداخلها.
  4. تشير العلامة { إلى بداية نص الدالة main().
  5. الإعلان عن المتغير x وتهيئته إلى 20.
  6. استخدام عبارة التبديل وتمرير الوسيطة x إليها. وهذا يعني أننا بحاجة إلى مقارنة قيمة المتغير x بمجموعة من القيم الأخرى.
  7. تشير العلامة { إلى بداية جسم التبديل.
  8. مقارنة قيمة المتغير x بقيمة 10.
  9. العبارة التي سيتم تنفيذها إذا كانت الحالة المذكورة أعلاه صحيحة، أي إذا كانت x تساوي 10. ويمنع الفاصل التنفيذ من الاستمرار في الحالة التالية.
  10. مقارنة قيمة المتغير x بقيمة 20.
  11. العبارة التي سيتم تنفيذها إذا كانت الحالة المذكورة أعلاه صحيحة، أي إذا كانت x تساوي 20. ويمنع الفاصل التنفيذ من الاستمرار في الحالة التالية.
  12. مقارنة قيمة المتغير x بقيمة 30.
  13. العبارة التي سيتم تنفيذها إذا كانت الحالة المذكورة أعلاه صحيحة، أي إذا كانت x تساوي 30. ويمنع الفاصل التنفيذ من الاستمرار في الحالة التالية.
  14. يساعدنا الإعداد الافتراضي في تحديد ما يجب فعله إذا كانت قيمة المتغير x ليست 10 أو 20 أو 30.
  15. البيان الذي سيتم تنفيذه إذا كانت الحالات المذكورة أعلاه غير صحيحة، أي إذا لم تكن x 10 أو 20 أو 30.
  16. نهاية نص بيان التبديل.
  17. يجب أن تقوم الدالة main() بإرجاع قيمة إذا كان البرنامج يعمل بشكل جيد.
  18. نهاية نص الدالة main().

راجع أيضًا مقالتنا حول الفرق بين C و C++:- اضغط هنا

تبديل حالة البرنامج مثال 2

#include <iostream>  
using namespace std;
int main() {
	int choice;
	cout << "Enter 1, 2 or 3: ";
	cin >> choice;
	switch (choice)
	{
	case 1: 
		cout << "Choice 1"; break;
	case 2: 
		cout << "Choice 2"; break;
	case 3: 
		cout << "Choice 3"; break;
	default: 
		cout << "Not 1, 2 or 3"; break;
	}
}

الإخراج:

تبديل برنامج الحالة

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

تبديل برنامج الحالة

Code التفسير:

  1. بما في ذلك ملف رأس iostream في التعليمات البرمجية الخاصة بنا. سيسمح لنا بالقراءة من وحدة التحكم والكتابة إليها.
  2. تضمين مساحة الاسم std لاستخدام فئاتها ووظائفها دون استدعائها.
  3. استدعاء الوظيفة الرئيسية () التي يجب إضافة منطق البرنامج بداخلها. تشير العلامة { إلى بداية نص الدالة main().
  4. الإعلان عن متغير عدد صحيح يسمى الاختيار.
  5. طباعة بعض النص على وحدة التحكم.
  6. مطالبة المستخدم بإدخال قيمة الاختيار.
  7. استخدام عبارة التبديل وتمرير اختيار الوسيطة إليها. ويعني ذلك أننا بحاجة إلى مقارنة قيمة الاختيار المتغير بمجموعة من القيم الأخرى.
  8. تشير العلامة { إلى بداية جسم التبديل.
  9. مقارنة قيمة الاختيار المتغير بقيمة 1.
  10. البيان الذي سيتم تنفيذه إذا كانت الحالة المذكورة أعلاه صحيحة، أي إذا كان الاختيار هو 10. ويمنع الفاصل التنفيذ من الاستمرار في الحالة التالية.
  11. مقارنة قيمة الاختيار المتغير بقيمة 2.
  12. البيان الذي سيتم تنفيذه إذا كانت الحالة المذكورة أعلاه صحيحة، أي إذا كان الاختيار هو 2. ويمنع الفاصل التنفيذ من الاستمرار في الحالة التالية.
  13. مقارنة قيمة الاختيار المتغير بقيمة 3.
  14. البيان الذي سيتم تنفيذه إذا كانت الحالة المذكورة أعلاه صحيحة، أي إذا كان الاختيار هو 3. ويمنع الفاصل التنفيذ من الاستمرار في الحالة التالية.
  15. يساعدنا الإعداد الافتراضي في تحديد ما يجب فعله إذا كانت قيمة اختيار المتغير ليست 1 أو 2 أو 3.
  16. البيان الذي سيتم تنفيذه إذا كانت الحالات المذكورة أعلاه غير صحيحة، أي إذا لم يكن الاختيار 1 أو 2 أو 3.
  17. نهاية نص بيان التبديل.
  18. نهاية نص الدالة main().

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

تقوم عبارة التبديل باختيار كتلة واحدة من التعليمات البرمجية لتشغيلها من بين عدة حالات، بناءً على قيمة متغير أو تعبير واحد.

يستخدم بناء الجملة switch(expression) مع تسمية حالة واحدة أو أكثر، وفاصل بعد كل حالة، وحالة افتراضية اختيارية للقيم غير المتطابقة.

يُنهي الأمر break عملية التبديل ويمنع تنفيذ الحالة التالية. وبدونه، تستمر الحالات اللاحقة في التنفيذ.

استخدم عبارة switch عند مقارنة متغير واحد بالعديد من القيم الثابتة، لأنها أوضح من سلسلة طويلة من عبارات if-else.

تختبر عبارة switch متغيرًا واحدًا مقابل قيم ثابتة، بينما يمكن لعبارة if-else اختبار نطاقات وشروط معقدة. غالبًا ما تكون عبارة switch أكثر وضوحًا عند وجود العديد من الخيارات الثابتة.

يتم تنفيذ الحالة الافتراضية عندما لا تتطابق أي حالة مع التعبير. وهي اختيارية وعادة ما توضع في النهاية للتعامل مع القيم غير المتوقعة.

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

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

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