البرمجة بلغة السى – الجزء الثانى -6- عبارة goto :

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

البرمجة بلغة السى – الجزء الثانى -6- عبارة goto :

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

البرمجة بلغة السى – الجزء الثانى -6- عبارة goto :

فى البرمجة بلغة السى ، تستخدم عبارة goto من أجل تغيير التسلسل العادى لتنفيذ البرنامج عن طريق تحويل التحكم إلى جزء آخر من البرنامج .

صيغة عبارة goto :

الكود:


goto label;
.............
.............
.............
label:
statement;


فى هذه الصيغة : العنوان أو اللافتة label هو معرف . عندما يصل التحكم فى البرنامج إلى عبارة goto ، فإن التحكم فى البرنامج سوف يقفز إلى العنوان label: وينفذ الكود الموجود بعدها .


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

الكود:


/* C program to demonstrate the working of goto statement.*/
# include <stdio.h>
int main(){
  float num,average,sum;
  int i,n;
  printf("Maximum no. of inputs: ");
  scanf("%d",&n);
  for(i=1;i<=n;++i){
      printf("Enter n%d: ",i);
      scanf("%f",&num);
      if(num<0.0)
      goto jump;            /* control of the program jumps to label jump */
      sum=sum+num;
}
jump:
  average=sum/(i-1);     
  printf("Average: %.2f",average);
  return 0;
}


الخرج :

الكود:


Maximum no. of inputs: 4
Enter n1: 1.5
Enter n2: 12.5
Enter n3: 7.2
Enter n4: -1
Average: 7.07


على الرغم من أن عبارة goto متضمنة فى المواصفات القياسية ANSI للغة السى ، إلا أنه يجب تخفيض استخدام عبارة goto قدر الإمكان فى البرنامج .

أسباب تجنب عبارة goto :

على الرغم من أن استخدام عبارة goto تعطى القدرة للقفز إلى أى جزء بالبرنامج ، إلا أن استخدام عبارة goto تجعل منطق البرنامج معقد ومتشابك . فى البرمجة الحديثة ، تعتبر عبارة goto بناء ضار وممارسة سيئة فى البرمجة . يمكن استبدال عبارة goto فى معظم برامج لغة السى باستخدام عبارة break وعبارة continue . فى الواقع ، يمكن كتابة أى برنامج بلغة السى بالكامل دون استخدام عبارة goto . يجب على كل مبرمج محاولة تجنب عبارة goto قدر الإمكان .

Admin
Admin

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

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

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

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


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