عبارة التبديل في لغة C هي بديل لبيان سلم if-else-if الذي يسمح لنا بتنفيذ عمليات متعددة لقيم محتملة مختلفة لمتغير واحد يسمى متغير التبديل. هنا، يمكننا تعريف عبارات مختلفة في الحالات المتعددة لقيم مختلفة لمتغير واحد.
بناء جملة بيان التبديل في لغة سي ويرد أدناه:
switch(expression){ case value1: //code to be executed; break; //optional case value2: //code to be executed; break; //optional ...... default: code to be executed if all cases are not matched; }
قواعد بيان التبديل في لغة C
- ال تبديل التعبير يجب أن يكون من نوع عدد صحيح أو حرف.
- ال قيمة القضية يجب أن يكون عددًا صحيحًا أو حرفًا ثابتًا.
- ال قيمة القضية يمكن استخدامه فقط داخل بيان التبديل.
- ال بيان كسر في حالة التبديل لا يجب. إنه اختياري. إذا لم يتم العثور على بيان استراحة في الحالة، فسيتم تنفيذ جميع الحالات الموجودة بعد الحالة المطابقة. إنه شائع مثل وقع خلال حالة بيان التبديل C.
دعونا نحاول أن نفهم ذلك من خلال الأمثلة. نحن نفترض أن هناك المتغيرات التالية.
int x,y,z; char a,b; float f;
تبديل صالح | التبديل غير صالح | حالة صالحة | حالة غير صالحة |
---|---|---|---|
التبديل (خ) | التبديل (و) | الحالة 3؛ | الحالة 2.5؛ |
التبديل (س> ص) | التبديل (س + 2.5) | الحالة 'أ'؛ | الحالة س؛ |
التبديل (أ + ب-2) | الحالة 1+2؛ | الحالة س+2؛ | |
التبديل (وظيفة (س، ص)) | الحالة 'x'>'y'; | الحالة 1،2،3؛ |
مخطط انسيابي لبيان التبديل في C
عمل بيان حالة التبديل
أولاً، يتم تقييم التعبير الصحيح المحدد في عبارة التبديل. ثم تتم مطابقة هذه القيمة واحدة تلو الأخرى مع القيم الثابتة المعطاة في الحالات المختلفة. إذا تم العثور على تطابق، فسيتم تنفيذ جميع العبارات المحددة في هذه الحالة بالإضافة إلى جميع الحالات الموجودة بعد تلك الحالة بما في ذلك العبارة الافتراضية. لا يمكن أن يكون لحالتين قيم مماثلة. إذا كانت الحالة المطابقة تحتوي على عبارة Break، فسيتم تخطي جميع الحالات الموجودة بعد ذلك، ويخرج عنصر التحكم من المفتاح. وبخلاف ذلك، سيتم تنفيذ كافة الحالات التي تلي الحالة المطابقة.
كيف يعمل بيان التبديل C؟
دعنا نستعرض العملية خطوة بخطوة لكيفية عمل عبارة التبديل في لغة C:
النظر في ما يلي بيان التبديل :
برنامج ج:
#include int main() { int num = 2; switch (num) { case 1: printf('Value is 1 '); break; case 2: printf('Value is 2 '); break; case 3: printf('Value is 3 '); break; default: printf('Value is not 1, 2, or 3 '); break; } return 0; }
انتاج |
Value is 2
عملية خطوة بخطوة:
- ال رقم التبديل المتغير تم التقييم. في هذه الحالة، على واحد تتم تهيئة مع القيمة 2 .
- ال القيمة المقدرة رقم (2). تتم مقارنتها بالثوابت المحددة في كل تسمية حالة داخل ملف كتلة التبديل .
- ال بيان التبديل يطابق القيمة المقدرة (2) مع الثابت المحدد في الحالة الثانية (الحالة 2) . نظرًا لوجود تطابق، ينتقل البرنامج إلى كتلة التعليمات البرمجية المرتبطة بـ حالة المطابقة (الحالة 2) .
- كتلة التعليمات البرمجية المرتبطة بها الحالة 2 يتم تنفيذه، والذي يطبع 'القيمة هي 2' إلى وحدة التحكم.
- ال 'استراحة' الكلمة الأساسية موجودة في كتلة التعليمات البرمجية الخاصة بـ الحالة 2 . ونتيجة لذلك، يخرج البرنامج من بيان التبديل مباشرة بعد تنفيذ كتلة التعليمات البرمجية.
- يستمر التحكم في البرنامج بعد بيان التبديل ، وأي تصريحات بعد بيان التبديل يتم إعدامهم. في هذه الحالة، لا توجد أي بيانات بعد التبديل، وبالتالي ينتهي البرنامج.
- ال بيان التبديل تم تقييم قيمة رقم متغير ، وعثر على تطابق مع الحالة 2، ونفذ كتلة التعليمات البرمجية المقابلة، ثم خرج من الملف كتلة التبديل بسبب وجود بيان 'كسر'. .
مثال على بيان التبديل في C
دعونا نرى مثالاً بسيطًا لبيان تبديل لغة C.
#include int main(){ int number=0; printf('enter a number:'); scanf('%d',&number); switch(number){ case 10: printf('number is equals to 10'); break; case 50: printf('number is equal to 50'); break; case 100: printf('number is equal to 100'); break; default: printf('number is not equal to 10, 50 or 100'); } return 0; }
انتاج |
صور icloud على الروبوت
enter a number:4 number is not equal to 10, 50 or 100 enter a number:50 number is equal to 50
حالة التبديل مثال 2
#include int main() { int x = 10, y = 5; switch(x>y && x+y>0) { case 1: printf('hi'); break; case 0: printf('bye'); break; default: printf(' Hello bye '); } }
انتاج |
hi
فاصل والكلمة الأساسية الافتراضية في بيان التبديل
دعونا نشرح ونحدد 'استراحة' و الكلمات الرئيسية 'الافتراضية'. في سياق عبارة التبديل، جنبًا إلى جنب مع مثال التعليمات البرمجية والمخرجات.
1. كسر الكلمة الرئيسية:
ال الكلمة المفتاحية 'كسر'. يتم استخدامه داخل كتلة التعليمات البرمجية لكل حالة لإنهاء بيان التبديل قبل الأوان. عندما يواجه البرنامج أ بيان 'كسر'. داخل كتلة الحالة، فإنه يخرج على الفور من بيان التبديل ، منع تنفيذ كتل الحالة اللاحقة. ال بيان 'كسر'. أمر بالغ الأهمية لتجنب عبارات التبديل 'وقع خلال' سلوك.
مثال:
لنأخذ برنامجًا لفهم استخدام كسر الكلمة الأساسية شركة.
#include int main() { int num = 3; switch (num) { case 1: printf('Value is 1 '); break; // Exit the switch statement after executing this case block case 2: printf('Value is 2 '); break; // Exit the switch statement after executing this case block case 3: printf('Value is 3 '); break; // Exit the switch statement after executing this case block default: printf('Value is not 1, 2, or 3 '); break; // Exit the switch statement after executing the default case block } return 0; }
انتاج |
Value is 3
توضيح:
في هذا المثال، بيان التبديل يقيم قيمة رقم متغير (الذي 3 ) ويطابقها الحالة 3 . كتلة التعليمات البرمجية المرتبطة بها الحالة 3 يتم تنفيذه والطباعة 'القيمة هي 3' إلى وحدة التحكم. ال بيان 'كسر'. داخل الحالة 3 يضمن خروج البرنامج من بيان التبديل مباشرة بعد تنفيذ كتلة الحالة هذه، مما يمنع تنفيذ أي حالات أخرى.
2. الكلمة الرئيسية الافتراضية:
عندما لا شيء من ثوابت الحالة طابق ال التعبير المقدر ، تعمل ك حالة شاملة . في حالة عدم وجود حالة مطابقة و الحالة 'الافتراضية' موجودة ، كتلة التعليمات البرمجية المرتبطة بـ 'تقصير' يتم تشغيل القضية. غالبًا ما يتم استخدامه للتعامل مع الظروف التي لا تنطبق فيها أي من المواقف المذكورة على المدخلات المقدمة.
مثال:
لنأخذ برنامجًا لفهم استخدام الكلمة الأساسية الافتراضية شركة.
#include int main() { int num = 5; switch (num) { case 1: printf('Value is 1 '); break; case 2: printf('Value is 2 '); break; case 3: printf('Value is 3 '); break; default: printf('Value is not 1, 2, or 3 '); break; // Exit the switch statement after executing the default case block } return 0; }
انتاج |
Value is not 1, 2, or 3
توضيح:
في هذا المثال، بيان التبديل يفحص قيمة رقم متغير (الذي 5 ). نظرًا لعدم وجود حالة تطابق الرقم، يقوم البرنامج بتنفيذ كتلة التعليمات البرمجية المرتبطة بالرقم حالة 'افتراضية'. . ال بيان 'كسر'. داخل حالة 'افتراضية'. يضمن خروج البرنامج من بيان التبديل بعد تنفيذ 'تقصير' كتلة القضية.
كلا ال 'استراحة' و الكلمات الرئيسية 'الافتراضية'. لعب أدوارًا أساسية في التحكم في تدفق التنفيذ ضمن بيان التبديل. ال بيان 'كسر'. يساعد على منع سلوك السقوط، في حين أن حالة 'افتراضية'. يوفر طريقة للتعامل مع الحالات التي لا مثيل لها.
عبارة C Switch غير مكتملة
في لغة C، يتم تنفيذ عبارة التبديل؛ هذا يعني أنه إذا لم تستخدم عبارة Break في حالة التبديل، فسيتم تنفيذ جميع الحالات بعد الحالة المطابقة.
دعونا نحاول فهم بيان حالة التبديل من خلال المثال الموضح أدناه.
#include int main(){ int number=0; printf('enter a number:'); scanf('%d',&number); switch(number){ case 10: printf('number is equal to 10 '); case 50: printf('number is equal to 50 '); case 100: printf('number is equal to 100 '); default: printf('number is not equal to 10, 50 or 100'); } return 0; }
انتاج |
enter a number:10 number is equal to 10 number is equal to 50 number is equal to 100 number is not equal to 10, 50 or 100
انتاج |
enter a number:50 number is equal to 50 number is equal to 100 number is not equal to 10, 50 or 100
بيان حالة التبديل المتداخل
يمكننا استخدام أي عدد نريده من عبارة التبديل داخل عبارة التبديل. يسمى هذا النوع من العبارات ببيانات حالة التبديل المتداخلة. النظر في المثال التالي.
#include int main () { int i = 10; int j = 20; switch(i) { case 10: printf('the value of i evaluated in outer switch: %d ',i); case 20: switch(j) { case 20: printf('The value of j evaluated in nested switch: %d ',j); } } printf('Exact value of i is : %d ', i ); printf('Exact value of j is : %d ', j ); return 0; }
انتاج |
the value of i evaluated in outer switch: 10 The value of j evaluated in nested switch: 20 Exact value of i is : 10 Exact value of j is : 20
مزايا بيان التبديل:
هناك العديد من المزايا لل بيان التبديل في C. بعض المزايا الرئيسية لبيان التبديل هي كما يلي:
ال بيان التبديل يدعم استخدام الحالة الافتراضية التي تكون بمثابة ملف خيار التقاط الكل للقيم التي لا تتطابق مع أي حالات مقدمة. هذا الحالة الافتراضية يتعامل مع المدخلات أو الظروف غير العادية التي لم يتم النص عليها صراحة.
عيوب بيان التبديل:
هناك عدة عيوب لل بيان التبديل في C. بعض العيوب الرئيسية لبيان التبديل هي كما يلي: