البرمجة بلغة السى – الجزء الثانى -5- عبارة switch….case :

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

البرمجة بلغة السى – الجزء الثانى -5- عبارة switch….case :

مُساهمة من طرف Admin في الخميس يناير 30, 2014 1:10 pm

البرمجة بلغة السى – الجزء الثانى -5- عبارة switch….case :

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

صيغة عبارة switch…case :

الكود:



switch (expression)
{
case constant1:
  codes to be executed if expression equals to constant1;
  break;
case constant2:
  codes to be executed if expression equals to constant3;
  break;
  .
  .
  .
default:
  codes to be executed if expression doesn't match to any cases;
}


فى عبارة switch…case : التعبير expression يكون إما عدد صحيح أو حرف . إذا طابقت قيمة تعبير switch أى من ثوابت case ، يتم تنفيذ الكود المتصل بها ويتحرك التحكم خارج عبارة switch…case . إذا لم تطابق قيمة تعبير switch أى من ثوابت case ، عندئذ يتم تنفيذ العبارة الافتراضية default .


مثال على عبارة switch…case :

كتابة برنامج بلغة السى يسأل المستخدم إدخال عامل حسابى (+ , - , * , / ) وإدخال معاملين وإجراء الحسابات المناظرة على المعاملات .

الكود:


/* C program to demonstrate the working of switch...case statement */
/* Program to create a simple calculator for addition, subtraction, multiplication and division */
# include <stdio.h>
int main(){
    char operator;
    float num1,num2;
    printf("Enter operator +, - , * or / :\n");
    operator=getche();
    printf("\nEnter two operands:\n");
    scanf("%f%f",&num1,&num2);
    switch(operator)                             
    {
    case '+':
              printf("num1+num2=%.2f",num1+num2);
              break;
    case '-':
              printf("num1-num2=%.2f",num1-num2);
              break;
    case '*':
              printf("num1*num2=%.2f",num1*num2);
              break;
    case '/':
              printf("num2/num1=%.2f",num1/num2);
              break;
    default:                               
/* if operator is other than +, -, * or /, error message is shown */
              printf(Error! operator is not correct");
              break;
    }
    return 0;
}


الخرج :

الكود:



Enter operator +, -, * or / :
/
Enter two operators:
34
3
num2/num1=11.33

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

Admin
Admin

عدد المساهمات : 1003
تاريخ التسجيل : 28/01/2014

معاينة صفحة البيانات الشخصي للعضو http://fathallaabdelaziz.forumarabia.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة

- مواضيع مماثلة

 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى