 |
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
|
|
نشاط [ F.Abdelaziz ]
قوة السمعة:333
|
|
31-03-2020, 10:53 AM
المشاركة 1
|
|
دورة برمجة الاردوينو : الدرس الثالث عشر
عبارات switch و break : Arduino switch and break Statements
عبارة switch تشبه استخدام if مع عدة أبنية else-if . يتم استخدام switch بالتزامن (مقترنة) مع break التى سيتم شرحها أيضًا في هذا الدرس .
استخدام switch بدلاً من العديد من أبنية else-if أسهل في القراءة ولديها المزيد من المرونة.
مثال عبارة switch :
يوضح برنامج اردوينو التالي عبارة switch التى يتم استخدامها بالاقتران مع عبارة break .
قم بتحميل البرنامج إلى Arduino ثم ابدأ تشغيل نافذة الشاشة التسلسلية. سيؤدي إرسال 1 من نافذة الشاشة التسلسلية إلى Arduino إلى تشغيل الليد الموجود على اللوحة ، بينما يؤدي إرسال 2 إلى إيقاف تشغيل الليد .
سيعرض إرسال 3 قائمة الخيارات التي يعمل عليها البرنامج . سيؤدي إرسال أي حرف آخر إلى ظهور رسالة افتراضية توضح أن الخيار الذي تم اختياره غير صالح.
كود:
void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT); // LED on pin 13 of UNO
}
char rx_byte = 0;
void loop() {
if (Serial.available() > 0) { // is a character available?
rx_byte = Serial.read();
switch (rx_byte) {
case '1':
digitalWrite(13, HIGH);
Serial.println("LED is ON");
break;
case '2':
digitalWrite(13, LOW);
Serial.println("LED is OFF");
break;
case '3':
Serial.println("------- MENU -------");
Serial.println("1. Switch LED on.");
Serial.println("2. Switch LED off.");
Serial.println("3. This menu.");
Serial.println("--------------------");
break;
default:
Serial.println("Invalid option");
break;
} // end: switch (rx_byte)
} // end: if (Serial.available() > 0)
}
سيتم شرح كيفية عمل البرنامج لاحقًا ، ولكن يجب علينا أولاً أن ننظر إلى بنية عبارة switch وكيف تعمل عبارة break .
بناء عبارة switch : Structure of the switch Statement
توضح الصورة أدناه بناء عبارة switch .

تحتوي عبارة switch على متغير (switch_var في الصورة أعلاه أو rx_byte في المثال السابق ) يمكن أن يكون متغيرًا صحيحًا (int) أو حرفًا (char).
سيتم اختبار متغير switch مقابل القيمة في كل حالة case لمعرفة ما إذا كانت متطابقة. عندما يتم العثور على حالة تطابق ، سيتم تشغيل العبارات الموجودة أسفل الحالة case حتى يتم الوصول إلى الكلمة الأساسية break . سيؤدي ذلك إلى كسر تدفق البرنامج خارج جسم عبارة switch وسيستمر تنفيذ البرنامج أسفل قوس إغلاق عبارة switch .
إذا لم يتم العثور على حالة case مطابقة ، فسيتم تشغيل الكود الموجود أسفل الكلمة الرئيسية default حتى يتم العثور على عبارة break .
كيف يعمل برنامج المثال :
في برنامج المثال، يتم وضع عبارة switch داخل عبارة if في الحلقة الرئيسية. عندئذٍ ، يتم تشغيل عبارة switch فقط في حالة استقبال حرف جديد من نافذة Serial Monitor.
عند استقبال حرف من نافذة Serial Monitor ، ستتحقق عبارة switch من وجود قيمة حالة case مطابقة. في حالة استقبال الحرف '1' ، يتم تشغيل الليد ويتم عرض رسالة في نافذة الشاشة التسلسلية.
إذا تم استقبال '2' ، يتم إيقاف تشغيل الليد . يعرض '3' قائمة بالخيارات المتاحة في البرنامج .
إذا تم إرسال أي حرف لا يتطابق مع الأحرف الموجودة في أي من عبارات الحالة case ، يتم تشغيل الكود الموجود في الجزء الافتراضي default من جسم switch والذي يعرض رسالة افتراضية.
عبارة break : The break Statement
يتم استخدام عبارة break في برنامج المثال للخروج من جسم عبارة switch .
يمكن أيضًا استخدام break للخروج من أي حلقة مثل while أو for . على سبيل المثال ، يمكن اختبار شرط معين في حلقة باستخدام عبارة if وإذا تم تقييم العبارة إلى true ، يمكن تشغيل عبارة break للخروج من الحلقة.
|