يمكن لبنية التبديل في C++ أيضًا تنفيذ مجموعة متنوعة من الهياكل الفرعية، على غرار بنية else if ، أي أنه في المواقف المختلفة، يمكن للبرنامج تحديد الفرع الذي يجب اختياره بناءً على الشروط، مما يثري إمكانيات البرنامج الطريقة مشابهة للغة C والبنية العامة هي كما يلي:
تبديل (تعبير) {تعبير ثابت للحالة 1: تعبير ثابت للحالة 2: تعبير ثابت للحالة 3: العبارة 3؛}
لاحظ أنه لا توجد فاصلة منقوطة بعد قوس التبديل! وهذا خطأ سهل للمبتدئين.
يتمثل تدفق تنفيذ البرنامج أولاً في تنفيذ قيمة التعبير بين قوسين بعد المفتاح، ثم مقارنتها بالثابت بعد الحالة لمعرفة أيهما يساوي، وبمجرد تساويهما، يبدأ التنفيذ من العبارة بعد النقطتين الحالة، أي أنه يتم تنفيذ البيان المقابل بعد البيان، ويتم أيضًا تنفيذ بيان الحالة اللاحق، ولم يعد يحدد ما إذا كانت قيم الحالة متساوية أم لا. وإذا تبين بعد المقارنة أن جميع الحالات غير متساوية، فسيتم تنفيذ البيان بعد التقصير. هذه هي خاصية التنفيذ لهيكل التبديل.
لنأخذ مشكلة فعلية كمثال لشرح الاستخدام بالتفصيل، السؤال 1783 هو آلة حكم يوم الأسبوع، يرجى قراءة السؤال بنفسك أولاً ومحاولة حله وإرساله، ثم الرجوع إلى الإجابة.
الجواب المرجعي هو كما يلي:
#include<iostream>usingnamespacestd;intmain(){intn;cin>>n;switch(n){case0:cout<<Sunday;break;case1:cout<<Monday;break;case2:cout<<Tuesday;break; case3:cout<<Wednesday;break;case4:cout<<Thursday;break;case5:cout<<Friday;break;case6:cout<<Saturday;break;default:cout<<inputerror!;}return0;}
يرجى استخدام الكمبيوتر للتشفير شخصيًا، وتذكر ألا تكون مغرورًا جدًا!