سلام خدمت همه همراهان همیشگی و علاقه مندان به سایت کافه میکرو امروز در خدمت شما هستیم با یک آموزش بسیار مفید دیگر، ما در این آموزش کار با دستور شرطی if رو ( که شامل if … else و همینطور if … else تو در تو هم می شه ) در زبان C به کمک یک مثال یاد خواهید گرفت.
از آنجا که در آردوینو ( Arduino ) نیز از زبان های C و C++ استفاده می شود، مطالبی که در ادامه بیان می شود عمومی هستند و برای میکروکنترلرها همینطور زمینه ی Embedded C کاربرد دارد.
if (test expression) { // statements to be executed if the test expression is true }
دستور شرطی if در مثال پایین، مقدار متغییر test رو که در درون پرانتز قرار گرفته رو ارزیابی می کنه.
اگر شرط صحیح باشه دستورات درون بدنه ی if اجرا می شوند و در غیر اینصورت دستورات درون بدنه ی if نادیده گرفته شده و اجرا نمی شوند.
به منظور بررسی شرایط دستور if که چه زمانی صحیح و برقرار هستند و چه زمانی نادرست و برقرار نیستند، لازم است که عملگرهای منطقی و مقایسه ای را بشناسید که در قالب مقاله ای جداگانه به بررسی آن ها می پردازیم.
// Program to display a number if it is negative #include <stdio.h> int main() { int number; printf("Enter an integer: "); scanf("%d", &number); // true if number is less than 0 if (number < 0) { printf("You entered %d.\n", number); } printf("The if statement is easy."); return 0; }
Enter an integer: -5 You entered -5. The if statement is easy.
زمانی که کاربر مقدار -5 را وارد می کند، مقدار شرط number < 0 ارزیابی شده و نتیجه صحیح است. بنابراین عبارت You entered -5 بر روی صفحه نمایش چاپ می شود
Enter an integer: 7 The if statement is easy.
زمانی که کاربر مقدار 7 را وارد می کند، مقدار شرط number < 0 ارزیابی شده و نتیجه نادرست است. بنابراین دستورات درون بدنه ی if اجرا نمی شوند، در نتیجه دستورات مربوط به آن بخش بر روی صفحه نمایش چاپ نمی شوند.
دستور if ممکن است یک بلوک else اختیاری هم داشته باشد. فرم سینتکس آن را در ادامه مشاهده می کنید.
if (test expression) { // statements to be executed if the test expression is true } else { // statements to be executed if the test expression is false }
اگر مقدار شرط بعد از ارزیابی ، صحیح تشخیص داده شود، دستورات درون بدنه ی if اجرا شده و دستورات موجود در بدنه ی else نادیده گرفته می شوند.
اگر مقدار شرط بعد از ارزیابی ، نادرست تشخیص داده شود، دستورات درون بدنه ی else اجرا شده و دستورات موجود در بدنه ی if نادیده گرفته می شوند.
// Check whether an integer is odd or even #include <stdio.h> int main() { int number; printf("Enter an integer: "); scanf("%d", &number); // True if the remainder is 0 if (number%2 == 0) { printf("%d is an even integer.",number); } else { printf("%d is an odd integer.",number); } return 0; }
Enter an integer: 9 9 is an odd integer.
زمانی که کاربر مقدا 9 را وارد می کند، عبارت number%2 == 0 ارزیابی شده و نتیجه نادرست تشخیص داده خواهد شد. بنابراین دستورات درون بدنه ی else اجرا می شوند.
ترکیب دستور if … else بعد از بررسی شرط، تنها 2 کد را اجرا می کند، بسته به اینکه شرط برقرار باشد و یا برقرار نباشد. اما گاهی اوقات شرایط بیش تر از 2 حالت را به وجود می آورد.
نردبان if … else این امکان را به شما می دهد که بتوانید شرایط متفاوتی را ارزیابی کرده و دستورات متفاوتی را اجرا کنید.
if (test expression1) { // statement(s) } else if(test expression2) { // statement(s) } else if (test expression3) { // statement(s) } . . else { // statement(s) }
// Program to relate two integers using =, > or < symbol #include <stdio.h> int main() { int number1, number2; printf("Enter two integers: "); scanf("%d %d", &number1, &number2); //checks if the two integers are equal. if(number1 == number2) { printf("Result: %d = %d",number1,number2); } //checks if number1 is greater than number2. else if (number1 > number2) { printf("Result: %d > %d", number1, number2); } //checks if both test expressions are false else { printf("Result: %d < %d",number1, number2); } return 0; }
Enter two integers: 12 23 Result: 12 < 23
همانطور که در مثال ذیل مشاهده می کنید، در یک بدنه ی if … else می توان if … else های دیگری نیز داشت.
#include <stdio.h> int main() { int number1, number2; printf("Enter two integers: "); scanf("%d %d", &number1, &number2); if (number1 >= number2) { if (number1 == number2) { printf("Result: %d = %d",number1,number2); } else { printf("Result: %d > %d", number1, number2); } } else { printf("Result: %d < %d",number1, number2); } return 0; }
اگر بدنه ی دستور if … else تنها دارای یک دستور است، نیازی به استفاده از {} نیست. اگر چه اکیدا توصیه می شود جهت افزایش خوانایی کد همواره از {} استفاده شود، حتی در این مورد خاص.
if (a > b) { print("Hello"); } print("Hi");
معادل است با
if (a > b) print("Hello"); print("Hi");
از اینکه همراه کافه میکرو بودید و تا پایان آموزش دستور شرطی if در C ، C++ و آردوینو همراه ما بودید به شما تبریک میگیم.
از بخش های دیگر کافه میکرو در فروشگاه و وبلاگ هم می توانید دیدن فرمایید.
منتظر مقالات و آموزش های دیگر کافه میکرو باشید.