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

C Switch Case Statements



عبارة التبديل - أو مجرد بيان الحالة - هي آلية تدفق للتحكم تحدد تنفيذ برنامج بناءً على قيمة متغير أو تعبير.

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







يركز هذا البرنامج التعليمي على توضيح كيفية إنشاء عبارات التبديل والعمل معها في برمجة لغة سي.



الاستخدام الأساسي

بيان التبديل سهل التنفيذ. الصيغة العامة كما هو موضح أدناه:



تحول (إكسبر) {
كاسيفار 1:
// الشفرة
استراحة؛
كاسيفار 2:
//الشفرة
استراحة؛
كاسيفار 3:
// الشفرة
استراحة؛
كاسيفارن:
// الشفرة
استراحة؛
...
….
….
إفتراضي:
//الشفرة
}

كيف تعمل

تطبق تعليمة التبديل منطقًا بسيطًا لتقييم كل كتلة حالة.





يبدأ بتقييم التعبير داخل كتلة التبديل. ثم يقارن القيمة من كتلة التبديل مقابل كل كتلة حالة.

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



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

ملاحظة: من الجيد التأكد من أن كل بيان حالة ينتهي بعبارة break لمنع تنفيذ جميع العبارات بعد كتلة المطابقة.

مثال بيان حالة التبديل

دعونا نوضح بيان التبديل بمثال بسيط للغاية:

#يشمل

انت مين() {
intأين= 5؛
تحول (أين) {
حالة 3:
printf ('القيمة 3')؛
استراحة؛
حالة 4:
printf ('القيمة 4')؛
استراحة؛
حالة 5:
printf ('القيمة 5')؛
استراحة؛
إفتراضي:
printf ('القيمة ليست 3 أو 4 أو 5')؛
}
العودة 0؛
}

إذا قمنا بتشغيل المثال أعلاه ، فيجب أن نحصل على مخرجات مشابهة لتلك الموجودة أدناه:

القيمة5

يوضح مخطط التدفق التالي منطق البرنامج أعلاه:

بيان تبديل متداخل

يسمح لك C بالحصول على عبارات switch متداخلة داخل جملة switch. ترتبط عبارة التبديل المتداخلة بقيمة رمز التبديل الخارجي.

خذ بعين الاعتبار المثال التالي:

#يشمل

انت مين() {
intقسم= 5؛
intaccess_code= 2028؛
تحول (قسم) {
حالة 1:
تحول (رمز الدخول) {
حالة 2021:
printf ('[+] رمز وصول صالح!')؛
استراحة؛
إفتراضي:
printf ('[-] رمز الوصول غير صالح!')؛
}
استراحة؛
إفتراضي:
printf ('[-] مسموح بالقسم 1 فقط!')؛
}
العودة 0؛
}

في المثال أعلاه ، نقوم بتنفيذ جملتي تبديل. يتحقق الأول مما إذا كان القسم المقدم هو 1. إذا كان هذا صحيحًا ، فإنه ينتقل إلى كتلة التبديل التالية ويتحقق من رمز الوصول الصحيح.

إذا لم تكن قيمة القسم واحدة ، ينتقل التنفيذ إلى الكتلة الافتراضية.

فيما يلي تنفيذ الكود أعلاه برمز القسم والدخول الصحيح وغير الصحيح.

في المثال الأول ، كلا من القسم ورمز الوصول صحيحان ؛ وبالتالي ، فإن التنفيذ لا يصل أبدًا إلى الكتل الافتراضية.

في المثال الثاني ، كلا من القسم ورمز الوصول غير صحيحين ؛ وبالتالي ، ينتقل التنفيذ على الفور إلى أول كتلة افتراضية.

إرشادات لبيانات التبديل

فيما يلي إرشادات سريعة جديرة بالملاحظة عند إنشاء عبارات التبديل في C.

  1. يجب عليك تمرير تعبير إلى مفتاح التبديل.
  2. يجب أن تتحقق بيانات الحالة من القيم الفريدة
  3. إنهاء كل كتلة حالة باستخدام الكلمة الأساسية كسر.
  4. يمكنك تداخل عبارات التبديل المتعددة.
  5. يمكنك تضمين عبارة افتراضية عندما يكون الإجراء ضروريًا للحالات غير المطابقة.

استنتاج

يرشدك هذا الدليل خلال أساسيات إنشاء واستخدام عبارات C switch. تكون عبارات التبديل مفيدة عندما يكون لديك حالات قرار معقدة قد يكون من الصعب تنفيذها باستخدام جملة if if.