---
title: Switch Statement
localeTitle: undefined
---
يسمح رمز التبديل باختبار متغير من أجل المساواة في قائمة القيم. تسمى كل قيمة بالحالة ، ويتم تحديد المتغير قيد التشغيل لكل حالة.

بناء الجملة: التبديل (تعبير) { حالة ثابت التعبير: صياغات)؛ استراحة؛ //اختياري حالة ثابت التعبير: صياغات)؛ استراحة؛ //اختياري

// يمكنك الحصول على أي عدد من بيانات الحالة. الافتراضي: // اختياري صياغات)؛ }

تنطبق القواعد التالية على بيان التبديل -

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

يمكنك الحصول على أي عدد من عبارات الحالة داخل أحد المحولات. كل حالة متبوعة بالقيمة المراد مقارنتها مع النقطتين.

يجب أن يكون التعبير الثابت للحالة هو نفس نوع البيانات المتغير في المحول ، ويجب أن يكون ثابتًا أو حرفيًا.

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

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

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

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

مثال: \`\` \`C ++

# تتضمن

استخدام اسم للمحطة؛

انت مين () { // تعريف المتغير المحلي: درجة char = 'D'؛

التبديل (الصف) { الحالة "أ": cout << "ممتاز!" << endl ، استراحة؛ الحالة "ب": حالة 'C': cout << "well done" << endl؛ استراحة؛ الحالة "D": cout << "You passed" << endl؛ استراحة؛ حالة "F": cout << "Better try again" << endl؛ استراحة؛ الافتراضي: cout << "grade not grade" << endl؛ } cout << "درجتك" << grade << endl؛

العودة 0 } \`\` \`

انتاج: لقد نجحت درجتك هي د

### مصادر

https://www.tutorialspoint.com