دستورات کنترلی

آموزش آردوینو – قسمت چهارم : دستورات کنترلی

دستورات کنترلی در آردوینو

دستورات کنترلی و کاربرد آنها در برنامه نویسی آردوینو:
ساختارهای تصمیم گیری نیازمند این است که برنامه نویس یک یا چند دستور کنترلی را برای ارزیابی و یا آزمایش توسط برنامه تعیین کند.
برای این منظور باید یک یا چند مرحله اجرا شود:
مرحله اول در صورتی که جواب دستور کنترلی درست True می باشد اجرا خواهد شد،
و مرحله بعد زمانی اتفاق می افتد که
جواب دستور کنترلی غلط False باشد اجرا می شود؛ که برای نوشتن یک جمله شرطی این قسمت اختیاری می باشد.
در شکل زیر ساختار کلی یک عملیات کنترلی را میبینید که در اغلب زبان های برنامه نویسی مشترک می باشد:

دستورات کنترلی

دستورات کنترلی قسمت هایی در کد برنامه هستند که روند اجرای برنامه را کنترل می کنند.
در زیر به بررسی چند دستور کنترلی در برنامه نویسی آردوینو می پردازیم:

دستور شرطی if

دستور شرطی if از مهمترین دستورات کنترلی می باشد و شامل دستور یا دستورات شرطی داخل پرانتزمی باشد.
اگر دستورات شرطی داخل پرانتز برابر با True شد (درست بود) عبارات یا دستورات درون بلوک شرط اجرا خواهند شد
و در صورتی که شرط برقرار نباشد از جرای دستورات دخل بلوک شرط صرف نظر خواهد شد.
دستور شرطی if را به دو صورت می توان نوشت:
در صورتی که با درسط بودن شرط بخواهیم فقط یک عبارت یا دستور اجرا شود به صورت زیر استفاده می کنیم.

Form 1


if (condition)
statement;

اگر بخواهیم در صورت درست بودن شرط چندین عبارت یا دستور اجرا شود از آکولاد یا دوابرو برای تعیین آنها استفاده می کنیم:

Form 2


if (condition) {
Block of statements;
}

ساختار کلی یک دستور شرطی

ساختار دستور if

در زیر یک مثال برای دستور شرطی if مشاهده می کنیم:


/* Global variable definition */
int A = 5 ;
int B = 9 ;
Void setup () {
}
Void loop () {
/* check the boolean condition */
if (A > B) /* if condition is true then execute the following statement*/
A++;
/* check the boolean condition */
If ( ( A < B ) && ( B != 0 )) /* if condition is true then execute the following statement*/ {
A += B;
B--;
}
}

دستور شرطی if – else

همانند دستور شرطی if می باشد و زمانی که شرط صحیح باشد همانند دستور if عمل خواهد کرد
و زمانی که شرط صحیح نباشد عبارت یا دستوراتی که در قسمت Else نوشته می شوند اجرا خواهد شد.

حالت کلی دستور شرطی if – else


if (expression) {
Block of statements;
}
else {
Block of statements;
}

ساختار دستور if-else

مثال:

/* Global variable definition */
int A = 5 ;
int B = 9 ;
Void setup () {
}
Void loop () {
/* check the boolean condition */
if (A > B) /* if condition is true then execute the following statement*/ {
A++;
}else {
B -= A;
}
}

دستورات شرطی تو در تو if – else if – else

در این قسمت از دستورات کنترلی به توضیح دستورات شرطی تو در تو می پردازیم،
در اغلب اوقات پیش می آید که بعد از اینکه یک دستور شرطی بررسی شد و شرط آن درست یا غلط بود،
شرط دیگری نیز بررسی شود که در این صورت می توان از دستورات شرطی پشت سر هم و یا دستورات تو در تو استفاده کرد.

فرمت کلی دستور شرطی if تو در تو:


if (expression_1) {
Block of statements;
}
else if(expression_2) {
Block of statements;
}
.
.
.
else {
Block of statements;
}

برای نوشتن دستورات شرطی تو در تو نکات زیر را به خاطر داشته باشید:

  • دستور شرطی if می تواند دارای یک قسمت Else باشد و یا اصلا نداشته باشد
    و در صورتی که وجود دارد باید بعد از همه دستورهای Else if قرار گیرد.
  • دستور شرطی if می تواند دارای یک و یا چند قسمت Else if باشد و یا اصلا نداشته باشد،
    در صورت وجود باید قبل از قسمت Else قرار گیرند.
  • در صورتی که شرط یکی از Else if ها صحیح باشد فقط عبارات یا دستورات مربوط به همان شرط اجرا خواهد شد
    و مابقی Else if ها Else نه بررسی می شوند و نه اجرا می شوند.
بلوک دایگرام دستورات شرطی تو در تو if

دستورات کنترلی

 

مثال دستور شرطی تو در تو if

/* Global variable definition */
int A = 5 ;
int B = 9 ;
int c = 15;
Void setup () {
}
Void loop () {
/* check the boolean condition */
if (A > B) /* if condition is true then execute the following statement*/ {
A++;
}
/* check the boolean condition */
else if ((A == B )||( B < c) ) /* if condition is true then execute the following statement*/
{ C = B* A; }
else c++; }

دستور کنترلی Switch – case

این دستور نیز همانند if else if else روند اجرای برنامه را کنترل میکند.
بدین صورت که به برنامه نویس اجازه می دهد کدهای مختلف که در شرایط مختلف باید اجرا شوند را تعیین کند و اجرای کد را کنترل کند.
دستور Switch به طور خاص مقدار یک متغیر را بررسی میکند و با مقدار همه Case های موجود مقایسه میکند
و در صورتی که با یکی از آنها برابر باشد، کد داخل بلوک آن case اجرا خواهد شد و case های دیگر اجرا نخواهند شد.
دستور Break به ما این امکان را می دهد که از بلوک case خارج شویم.
در صورتی که از دستور Break در پایان بلوک Case استفاده نکنیم
باعث می شود همه کیس های موجود را به ترتیب طی کند تا به دستور Break و یا به پایان بلوک Switch برسد.

فرمت کلی دستور Switch Case


switch (variable) {
case label:
// statements
break;
}
case label: {
// statements
break;
}
default: {
// statements
break;
}

بلوک دیاگرام دستور کنترلی Switch Case

دستورات کنترلی آردوینو

مثال دستور Switch Case:


switch (phase) {
case 0: Lo(); break;
case 1: Mid(); break;
case 2: Hi(); break;
default: Message("Invalid state!");
}

در مثال بالا یک Switch با چهار حالت اجرا می بینید. مقدار متغیر phase با مقدار case ها مقایسه می شود (صفر، 1 و 2)
و در صورتی که با هر کدام از آنها برابر بود یک تابع فراخوانی می شود
و در صورتی که هر مقدار دیگری بود کدهای قسمت default اجرا خواهد شد.

دستور شرطی ?:

عملگر شرطی ?: تنها عملگر شرطی سه قستمی در زبان C می باشد.
نحوه اجرای این عمگر همانند دستور شرطی if else می باشد.
فرمت کلی این دستور در زیر آمده است:

expression1 ? expression2 : expression3

اولین قسمتی که اجرا می شود بخش اول آن می باشد یعنی expression1 و واقع شرط اجرای این دستور می باشد
و در صورتی که مقدار آن برابر با True باشد قسمت دوم expression2 اجرا می شود و قسمت سوم expression3 نادیده گرفته می شود
و در صورتی که شرط یعنی سمت اول نا درست باشد قسمت دوم نادیده گرفته می شود و قسمت سوم اجرا خواهد شد.

نکته: این دستور از چپ به راست اجرا می شود.

مثال:

/* Find max(a, b): */
max = ( a > b ) ? a : b;
/* Convert small letter to capital: */
/* (no parentheses are actually necessary) */
c = ( c >= 'a' && c <= 'z' ) ? ( c - 32 ) : c;

قوانین حاکم بر این عملگر:

شرط یا expression1 باید قابل سنجش باشد و قسمت دوم و سوم این دستور باید از قوانین زیر پیروی کنند:
هر دو قسمت باید توابع ریاضی باشند.
هر دو قسمت باید از نوع Void باشند، یا جواب آنها از نوع void باشد.

برای دیدن قسمت های دیگر آموزش آردوینو بر روی لینک های زیر کلیک نمائید:

برای بهبود کیفیت مطالب ارئه شده در سایت می توانید با ثبت نظرات ما را یاری فرمائید. همچنین برای دریافت اطلاعات بیشتر درباره برنامه نویسی آردوینو به اینجا مراجعه کنید.


۴ Comments

امیر

تیر ۲۰, ۱۳۹۹ at ۱:۳۹ ب.ظ

سلا وقتتون بخیر ببخشید یه سوال داشتم برای نوشتن دستور یا (||) باید از کدوم کلید کیبرد استفاده کنم؟

علی

آذر ۲۸, ۱۳۹۹ at ۹:۰۶ ق.ظ

سلام در کیبورد فارسی من قسمت .
کیبوردتون رو انگلیلسی کنین بعد با گرفتن شیفت دکمه پ را فشار بدین.

پوریا

مهر ۹, ۱۴۰۰ at ۳:۱۹ ب.ظ

کسی که ایده‌ی بزرگی رو بتونه با این دستورات کنترل کنه ارزشش رو میدونه.
عرض خسته نباشید و دمتون گرم دارم خدمتتون❤️💯

دانیال پارسا فر

اردیبهشت ۷, ۱۴۰۱ at ۱۱:۲۰ ب.ظ

سلام وقتتون بخیر
من میخوام وقتی سوییچ ۱ شد تایمر عمل کند و پس از طی کردن تایم خاموش شود حتی اگر سوییچ یک بود و آماده شرط بعدی شود در پایان delay
TurnOff را میزنم ولی چون سوییچ یک است همچنان تایمر عمل می‌کند و تایمر خاموش نمی‌شود لطفا راهنمایی کنید

ارسال نظرات