دستور if
میتوان با استفاده از دستور if و یک شرط خاص که باعث ایجاد یک کد میشود یک منطق به برنامه خود اضافه کنید. دستور if سادهترین دستور شرطی است که برنامه میگوید اگر شرطی برقرار است کد معینی را انجام بده. ساختار دستور if به صورت زیر است :
if (condition) code to execute;
قبل از اجرای دستور if ابتدا شرط بررسی میشود. اگر شرط برقرار باشد یعنی درست باشد سپس کد اجرا میشود. شرط یک عبارت مقایسهای است. میتوان از عملگرهای مقایسهای برای تست درست یا اشتباه بودن شرط استفاده کرد. اجازه بدهید که نگاهی به نحوه استفاده از دستور if در داخل برنامه بیندازیم. برنامه زیر پیغام Hello World را اگر مقدار number کمتر از 10 و Goodbye World را اگر مقدار number از 10 بزرگتر باشد در صفحه نمایش میدهد.
1: using System; 2: 3: public class Program 4: { 5: public static void Main() 6: { 7: //Declare a variable and set it a value less than 10 8: int number = 5; 9: 10: //If the value of number is less than 10 11: if (number < 10) 12: Console.WriteLine("Hello World."); 13: 14: //Change the value of a number to a value which 15: // is greater than 10 16: number = 15; 17: 18: //If the value of number is greater than 10 19: if (number > 10) 20: Console.WriteLine("Goodbye World."); 21: } 22: }
Hello World. Goodbye World.
در خط 8 یک متغیر با نام number تعریف و مقدار 5 به آن اختصاص داده شده است. وقتی به اولین دستور if در خط 11 میرسیم برنامه تشخیص میدهد که مقدار number از 10 کمتر است یعنی 5 کوچکتر از 10 است.
منطقی است که نتیجه مقایسه درست میباشد بنابراین دستور if دستور را اجرا میکند (خط 12) و پیغام Hello World چاپ میشود. حال مقدار number را به 15 تغییر میدهیم (خط 16). وقتی به دومین دستور if در خط 19 میرسیم برنامه مقدار number را با 10 مقایسه میکند و چون مقدار number یعنی 15 از 10 بزرگتر است برنامه پیغام Goodbye World را چاپ میکند (خط 20). به این نکته توجه کنید که دستور if را میتوان در یک خط نوشت :
if ( number > 10 ) Console.WriteLine("Goodbye World.");
شما میتوانید چندیندستور را در داخل دستور if بنویسید. کافیست که از یک آکولاد برای نشان دادن ابتدا و انتهای دستورات استفاده کنید. همه دستورات داخل بین آکولاد جز بدنه دستور if هستند. نحوه تعریف چند دستور در داخل بدنه if به صورت زیر است :
if (condition) { statement1; statement2; . . . statementN; }
این هم یک مثال ساده :
if (x > 10) { Console.WriteLine("x is greater than 10."); Console.WriteLine("This is still part of the if statement."); }
در مثال بالا اگر مقدار x از 10 بزرگتر باشد دو پیغام چاپ میشود. حال اگر به عنوان مثال آکولاد را حذف کنیم و مقدار x از 10 بزرگتر نباشد مانند کد زیر :
if (x > 10) Console.WriteLine("x is greater than 10."); Console.WriteLine("This is still part of the if statement. (Really?)");
کد بالا در صورتی بهتر خوانده میشود که بین دستورات فاصله بگذاریم.
if (x > 10) Console.WriteLine("x is greater than 10."); Console.WriteLine("This is still part of the if statement. (Really?)");
میبیند که دستور دوم (خط 3) در مثال بالا جز دستور if نیست. اینجاست که چون ما فرض را بر این گذاشتهایم که مقدار x از 10 کوچکتر است پس خطThis is still part of the if statement. (Really?) چاپ میشود. در نتیجه اهمیت وجود آکولاد مشخص میشود. به عنوان تمرین همیشه حتی اگر فقط یک دستور در بدنه if داشتید برای آن یک آکولاد بگذارید. فراموش نکنید که از قلم انداختن یک آکولاد باعث به وجود آمدن خطا شده و یافتن آن را سخت میکند. یکی از خطاهای معمول کسانی که برنامه نویسی را تازه شروع کردهاند قرار دادن سیمیکولن در سمت راست پرانتز if است. به عنوان مثال :
if (x > 10); Console.WriteLine("x is greater than 10");
به یاد داشته باشید که if یک مقایسه را انجام میدهد و دستور اجرایی نیست. بنابراین برنامه شما با یک خطای منطقی مواجه میشود. همیشه به یاد داشته باشید که قرار گرفتن سیمیکولن در سمت راست پرانتز if به منزله این است که بلوک کد در اینجا به پایان رسیده است. مثالی دیگر در مورد دستور if :
using System; public class Program { public static void Main() { int firstNumber; int secondNumber; Console.Write("Enter a number: "); firstNumber = Convert.ToInt32(Console.ReadLine()); Console.Write("Enter another number: "); secondNumber = Convert.ToInt32(Console.ReadLine()); if (firstNumber == secondNumber) { Console.WriteLine("{0} == {1}", firstNumber, secondNumber); } if (firstNumber != secondNumber) { Console.WriteLine("{0} != {1}", firstNumber, secondNumber); } if (firstNumber < secondNumber) { Console.WriteLine("{0} < {1}", firstNumber, secondNumber); } if (firstNumber > secondNumber) { Console.WriteLine("{0} > {1}", firstNumber, secondNumber); } if (firstNumber <= secondNumber) { Console.WriteLine("{0} <= {1}", firstNumber, secondNumber); } if (firstNumber >= secondNumber) { Console.WriteLine("{0} >= {1}", firstNumber, secondNumber); } } }
Enter a number: 2 Enter another number: 5 2 != 5 2 < 5 2 <= 5 Enter a number: 10 Enter another number: 3 10 != 3 10 > 3 10 >= 3 Enter a number: 5 Enter another number: 5 5 == 5 5 <= 5 5 >= 5
ما از عملگرهای مقایسهای در دستور if استفاده کردهایم. ابتدا دو عدد که قرار است با هم مقایسه شوند را به عنوان ورودی از کاربر میگیریم. اعداد با هم مقایسه میشوند و اگر شرط درست بود پیغامی چاپ میشود. به این نکته توجه داشته باشید که شرطها مقادیر بولی هستند، بنابراین شما میتوانید نتیجه یک عبارت را در داخل یک متغیر بولی ذخیره کنید و سپس از متغیر به عنوان شرط در دستور if استفاده کنید. اگر مقدار year برابر 2000 باشد سپس حاصل عبارت در متغیر isNewMillenium ذخیره میشود. میتوان از متغیر برای تشخیص کد اجرایی بدنه دستور if استفاده کرد خواه مقدار متغیر درست باشد یا نادرست.
bool isNewMillenium = year == 2000; if (isNewMillenium) { Console.WriteLine("Happy New Millenium!"); }
سلام من که حق عضویت رو پرداخت کردم ولی الان چندمین باره که باز هم این مشکل هست عملا من پول دادم ولی نمیتونم از مطالب استفاده کنم کلا یک بار تونستم.پول یک ماه رو پرداخت کردم ولی یک بار تونستم استفاده کنم.
سلام، شما آخرین پرداختتیتون 97/08/24 ساعت 12:53 بوده و اشتراکتون 97/09/24 تموم شده
خیلی جامع ، صحیح و کاملا قابل درک بود…ممنون میشم یک مثال جامع تر برای مورد آخر بزنید…منظورم ذخیره سازی یک مقدار در یک متغیر بولین هست…