البرمجة بلغة السى – الجزء الثانى -1- عبارة if , if..else , Nested if..else :

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

البرمجة بلغة السى – الجزء الثانى -1- عبارة if , if..else , Nested if..else :

مُساهمة من طرف Admin في الخميس يناير 30, 2014 9:44 am

البرمجة بلغة السى – الجزء الثانى -1- عبارة if , if..else , Nested if..else :

توجد حاجة لاتخاذ قرار عندما يواجه البرنامج وضع اختيار عبارة خاصة من بين العديد من العبارات . فى لغة السى ، اتخاذ القرار يمكن تنفيذه بالعبارتين التاليتين :
1- عبارة if…else .
2- عبارة switch .

عبارة if :

صيغة عبارة if :

الكود:


if (test expression){
      statement/s to be executed if test expression is true;
}


إذا كان " تعبير الاختبار" test expression صواب true ، يتم تنفيذ عبارات جسم عبارة if أى العبارات داخل الأقواس {…} . ولكن إذا كان تعبير الاختبار خطأ false ، يتم تخطى تنفيذ عبارات جسم عبارة if .

مثال على عبارة if :

كتابة برنامج بلغة السى لطباعة العدد الذى يتم إدخالة بواسطة المستخدم فقط إذا كان هذا العدد سالب .

الكود:


#include <stdio.h>
      int main(){
      int num;
      printf("Enter a number to check.\n");
      scanf("%d",&num);
      if(num<0)      /* checking whether number is less than 0 or not. */
            printf("Number=%d\n",num); 
/*If test condition is true, statement above will be executed, otherwise it will not be executed */
      printf("The if statement in C programming is easy.");
return 0;
}


الخرج الأول :

الكود:


Enter a number to check.
-2
Number=-2
The if statement in C programming is easy.


عندما يدخل المستخدم "-2" ، فإن تعبير الاختبار (num<0) يصبح صواب true ويتم تنفيذ العبارة التالية لعبارة if . ومن ثم يتم عرض Number=-2 على الشاشة . ثم تنفيذ العبارات التالية لها .

الخرج الثانى :

الكود:


Enter a number to check.
5
The if statement in C programming is easy.


عندما يدخل المستخدم "5" ، فإن تعبير الاختبار يصبح خطأ false . ومن ثم يتم تخطى تنفيذ عبارة جسم if (التى تلى عبارة if مباشرة ) ويتم فقط تنفيذ العبارة الموجودة أسفلها .

عبارة if…else :

يتم استخدام عبارة if…else ، إذا أراد المبرمج تنفيذ كود ما إذا كان تعبير الاختبار صواب true وتنفيذ كود آخر إذا كان تعبير الاختبار خطأ false .

صيغة عبارة if…else :


الكود:


if (test expression)
    statements to be executed if test expression is true;
else
    statements to be executed if test expression is false;



مثال على عبارة if…else :

كتابة برنامج بلغة السى لاختبار ما إذا كان العدد الذى يتم إدخاله بواسطة المستخدم زوجى أو فردى .

الكود:



int main(){
      int num;
      printf("Enter a number you want to check.\n");
      scanf("%d",&num);
      if((num%2)==0)          //checking whether remainder is 0 or not.
          printf("%d is even.",num);
      else
          printf("%d is odd.",num);
      return 0;
}

الخرج الأول :

الكود:


Enter a number you want to check.
25
25 is odd.


الخرج الثانى :

الكود:


Enter a number you want to check.
2
2 is even.


عبارة if…else المتداخلة ( عبارة if…elseif…else ) :

يمكن استخدام عبارة if…else فى شكل متداخل عند المشاركة بقرار خطير .

صيغة العبارة if…else المتداخلة :

الكود:


if (test expression)
    statements to be executed if test expression is true;
else
    if(test expression 1)
          statements to be executed if test expressions 1 is true;
      else
          if (test expression 2)
          .
          .
          .
            else
              statements to be executed if all test expressions are false;


كيف تعمل عبارة if…else المتداخلة :

إذا كان تعبير الاختبار test expression صواب ، فسوف يتم تنفيذ الكود الموجود قبل جزء else ولكن إذا كان خطأ ، فإن التحكم فى البرنامج يقفز إلى جزء else ويتم اختبار تعبير الاختبار test expression1 وتستمر العملية . إذا كانت جميع تعبيرات الاختبار خطأ عندئذ يتم تنفيذ آخر عبارة .
المواصفات القياسية ANSI تحدد أنه يمكن استمرار 15 مستوى من التداخل .

مثال لعبارة if…else المتداخلة :

كتابة برنامج بلغة السى للمقارنة بين عددين صحيحين يتم إدخالهما بواسطة المستخدم باستخدام عوامل المقارنة : ( == ) أو ( > ) أو ( < )

الكود:


#include <stdio.h>
int main(){
    int numb1, numb2;
    printf("Enter two integers to check.\n");
    scanf("%d %d",&numb1,&numb2);
    if(numb1==numb2) //checking whether two integers are equal.
          printf("Result: %d=%d",numb1,numb2);
    else
        if(numb1>numb2) //checking whether numb1 is greater than numb2.
          printf("Result: %d>%d",numb1,numb2);
        else
          printf("Result: %d>%d",numb2,numb1);
return 0;
}


الخرج الأول :

الكود:


Enter two integers to check.
5
3
Result: 5>3


الخرج الثانى :

الكود:


Enter two integers to check.
-4
-4
Result: -4=-4


Admin
Admin

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

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

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

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


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