الفرق بين المراجعتين لصفحة: «Arduino/goto»

من موسوعة حسوب
أنشأ الصفحة ب'ينقل التعبير <code>goto</code> البرنامج إلى موضع معين ضمن الشيفرة. ==البنية العامة== <syntaxhighlight lang="arduino"...'
 
إضافة محتويات الصفحة.
 
سطر 1: سطر 1:
ينقل التعبير <code>goto</code> البرنامج إلى موضع معين ضمن الشيفرة.
<noinclude>{{DISPLAYTITLE:الكلمة <code>goto</code> المفتاحية في  أردوينو}}</noinclude>
تنقل الكلمة <code>goto</code> المفتاحية البرنامج إلى موضع معين ضمن الشيفرة.


==البنية العامة==
==البنية العامة==
سطر 21: سطر 22:


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


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


==انظر أيضًا==
==انظر أيضًا==
*العبارة <code>[[Arduino/break|break]]</code>: تُستعمَل للخروج من الحلقات التكرارية، إذ تتخطى الشيفرة التي بعدها وشروط الحلقة المحددِّة وتخرج منها.
*الكلمة المفتاحية <code>[[Arduino/break|break]]</code>: تُستعمَل للخروج من الحلقات التكرارية، إذ تتخطى الشيفرة التي بعدها وشروط الحلقة المحددِّة وتخرج منها.
*الحلقة <code>do...while</code>:
*الكلمة المفتاحية <code>[[Arduino/continue|continue]]</code>: تتخطى الشيفرة التي تليها في حلقة التكرار إلى عملية التحقق من التعبير الشرطي لتلك الحلقة ثم يُستأنَف عمل حلقة التكرار بشكل طبيعي.
*العبارة <code>[[Arduino/else|else]]</code>:
*الحلقة <code>[[Arduino/dowhile|do...while]]</code>: تعمل بنفس الطريقة التي تعمل بها الحلقة <code>[[Arduino/while|while]]</code> باستثناء أنه يُتحقق من الشرط في نهاية الحلقة وليس في بدايتها.
*الحلقة <code>[[Arduino/for|for]]</code>:
*الكلمة المفتاحية <code>[[Arduino/else|else]]</code>: يسمح بالتحكم بشكل أوسع بتسلسل عملية التحقق من عدة شروط معينة عند تنفيذ الشيفرة عوضًا عن التحقق من شرط وحيد عند استعمال التعبير <code>[[Arduino/if|if]]</code>.
*العبارة <code>[[Arduino/for|for]]</code>:
*الحلقة <code>[[Arduino/for|for]]</code>: تُستعمَل لتكرار كتلة برمجية معينة من الشيفرة عددًا محدَّدًا من المرات.
*الحلقة <code>[[Arduino/if|if...else]]</code>:
*التعبير الشرطي <code>[[Arduino/if|if]]</code>: يتحقَّق من شرط معيَّن وينفِّذ الكتلة البرمجية المكتوبة ضمنه إن كان محقَّقًا (أي كانت قيمته <code>true</code>).
*العبارة <code>[[Arduino/return|return]]</code>:
*الكلمة المفتاحية <code>[[Arduino/return|return]]</code>: تقاطع المفتاحية تنفيذ أيَّ دالةٍ وتعيد قيمةً من الدالة إلى من استدعاها إن حدُّدت.
*التعبير <code>[[Arduino/switch|switch...case]]</code>:
*التعبير <code>[[Arduino/switchcase|switch...case]]</code>: يتحقَّق -كما في <code>[[Arduino/if|if]]</code>- من قيمة محدَّدة بطريقة تسمح للمبرمج بتحديد عدة شيفرات تُنفَّذ إحداها بناءً على تلك القيمة المفحوصة.
*الحلقة <code>[[Arduino/while|while]]</code>:
*الحلقة <code>[[Arduino/while|while]]</code>: تكرِّر تنفيذ الكتلة البرمجية التي ضمنها بشكل مستمر ولا نهائي ما دامت قيمة الشرط المنطقي المعطى هي <code>true</code> ومتى ما أصبحت قيمة الشرط المنطقي <code>false</code>، تتوقف الحلقة وتخرج.
==مصادر==
==مصادر==
*[https://www.arduino.cc/reference/en/language/structure/control-structure/goto/ صفحة العبارة goto في توثيق أردوينو الرسمي.]
*[https://www.arduino.cc/reference/en/language/structure/control-structure/goto/ صفحة الكلمة goto المفتاحية في توثيق أردوينو الرسمي.]
[[تصنيف: Arduino]]
[[تصنيف: Arduino Control Structure]]

المراجعة الحالية بتاريخ 05:31، 9 أكتوبر 2018

تنقل الكلمة 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: تُستعمَل للخروج من الحلقات التكرارية، إذ تتخطى الشيفرة التي بعدها وشروط الحلقة المحددِّة وتخرج منها.
  • الكلمة المفتاحية continue: تتخطى الشيفرة التي تليها في حلقة التكرار إلى عملية التحقق من التعبير الشرطي لتلك الحلقة ثم يُستأنَف عمل حلقة التكرار بشكل طبيعي.
  • الحلقة do...while: تعمل بنفس الطريقة التي تعمل بها الحلقة while باستثناء أنه يُتحقق من الشرط في نهاية الحلقة وليس في بدايتها.
  • الكلمة المفتاحية else: يسمح بالتحكم بشكل أوسع بتسلسل عملية التحقق من عدة شروط معينة عند تنفيذ الشيفرة عوضًا عن التحقق من شرط وحيد عند استعمال التعبير if.
  • الحلقة for: تُستعمَل لتكرار كتلة برمجية معينة من الشيفرة عددًا محدَّدًا من المرات.
  • التعبير الشرطي if: يتحقَّق من شرط معيَّن وينفِّذ الكتلة البرمجية المكتوبة ضمنه إن كان محقَّقًا (أي كانت قيمته true).
  • الكلمة المفتاحية return: تقاطع المفتاحية تنفيذ أيَّ دالةٍ وتعيد قيمةً من الدالة إلى من استدعاها إن حدُّدت.
  • التعبير switch...case: يتحقَّق -كما في if- من قيمة محدَّدة بطريقة تسمح للمبرمج بتحديد عدة شيفرات تُنفَّذ إحداها بناءً على تلك القيمة المفحوصة.
  • الحلقة while: تكرِّر تنفيذ الكتلة البرمجية التي ضمنها بشكل مستمر ولا نهائي ما دامت قيمة الشرط المنطقي المعطى هي true ومتى ما أصبحت قيمة الشرط المنطقي false، تتوقف الحلقة وتخرج.

مصادر