Arduino/goto

من موسوعة حسوب
مراجعة 14:04، 8 أكتوبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات) (أنشأ الصفحة ب'ينقل التعبير <code>goto</code> البرنامج إلى موضع معين ضمن الشيفرة. ==البنية العامة== <syntaxhighlight lang="arduino"...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

ينقل التعبير goto البرنامج إلى موضع معين ضمن الشيفرة.

البنية العامة

goto label; // إرسال البرنامج لتنفيذ الكتلة البرمجية 
            // label  الموجودة عند التسمية

أمثلة

مثالٌ على استعمال التعبير goto:

for(byte r = 0; r < 255; r++){
    for(byte g = 255; g > 0; g--){
        for(byte b = 0; b < 255; b++){
            if (analogRead(0) > 250){ goto bailout;}
            // يمكن إضافة شيء هنا
        }
    }
}

bailout:

ملاحظات وتحذيرات

لم تعد العبارة goto تُستعمَل في لغة C، وأُشير في بعض الكتب المرجعية للغة البرمجة C أن العبارة goto لم تعد ضرورية ولكن يمكن استعمالها لتبسيط بعض البرامج. السبب القابع خلف نفور المبرمجين من استعمال العبارة goto هو أنه عند التفريط باستعمالها، سيُنشَأ برنامجٌ ذو مسار تنفيذ غير معروف الأمر الذي يجعل من شبه المستحيل تتبع الأخطاء الحاصلة وتصحيحها.

من جهة أخرى، هنالك حالات يكون فيها استعمال العبارة goto مفيدًا ويبسِّط الشيفرة بشكل كبير. إحدى هذه الحالات هي تجزئة حلقة for متشعبة أو كتلة if شرطية عند شروط معينة.

انظر أيضًا

  • العبارة break: تُستعمَل للخروج من الحلقات التكرارية، إذ تتخطى الشيفرة التي بعدها وشروط الحلقة المحددِّة وتخرج منها.
  • الحلقة do...while:
  • العبارة else:
  • الحلقة for:
  • العبارة for:
  • الحلقة if...else:
  • العبارة return:
  • التعبير switch...case:
  • الحلقة while:

مصادر