حالة التبديل (بالإنجليزية: Switch statement)‏ هي آلية للتحكم في الاختيار تُتيح لقيمة متغير أو عبارة بتغيير تدفق سيطرة تنفيذ البرنامج بواسطة تفرع متعدد. وتتواجد حالات التبديل في معظم لغات البرمجة الأمرية الرفيعة، على سبيل المثال: باسكال، أيدا، سي/سي++، سي شارب، و الجافا. وفي الأنواع الأخرى من اللغات تُستخدم كلمات مفتاحية مثل:  switch، case، select أو inspect

تأتي حالات التبديل بنوعين مختلفين، الأول هو التبديل الهيكلي كما في لغة باسكال، حيث يأخذ تفرعاً واحداً فقط، والنوع الثاني هو التبديل الغير هيكلي كما في لغة سي، حيث تعمل كنوع انتقال (goto).

حالة تبديل في لغة سي
switch (age) {
 case 1: printf("You're one.");   break;
 case 2: printf("You're two.");   break;
 case 3: printf("You're three.");  break;
 case 4: printf("You're four.");  break;
 default: printf("You're neither!");
}