با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش #c ، را دنبال می کنند. در قسمت قبلی با عملگرها و انواع آنها آشنا شدید.
در این بخش شما را با دستور شرطی if else آشنا خواهیم کرد.
عملیات تصمیم گیری به جریان برنامه کمک می کند تا بر اساس شرایط منطقی خاص اعمال خاصی را نیز انجام دهد .
زبان #C شامل عملیات تصمیم گیری زیر است.
دستور زیر نوع ساده از دستور شرطی if را نشان می دهد:
1 2 3 4 | if(boolean expression) { // execute this code block if expression evalutes to true } |
عبارات شرطی را می توان در چند خط نوشت ، در داخل پرانتز شرط مورد نظر برای بررسی و در صورت درست (true) بودن شرط ، قسمت براکت {} اجراء خواهد شد.
مثال زیر نمونه دستور شرطی if را نشان می دهد:
1 2 3 4 5 6 7 8 9 | if(true) { Console.WriteLine("This will be displayed."); } if(false) { Console.WriteLine("This will not be displayed."); } |
دستور شرطی باید دارای شرط منطقی باشد که در نهایت true یا false را برگرداند که اگر true باشد دستورات داخل بدنه شرط اجراء خواهند شد.
در زیر نمونه های دیگری از این دستورات آورده شده است:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | int i = 10, j = 20; if (i > j) { Console.WriteLine("i is greater than j"); } if (i < j) { Console.WriteLine("i is less than j"); } if (i == j) { Console.WriteLine("i is equal to j"); } |
خروجی این دستورات عبارت i is less than j می باشد.
در مثال بالا کامپایلر دستور شرطی اول را بررسی می کند که i از j بزرگتر بوده پس true را برمیگرداند و دستورات بدنه اجراء می شوند.
به همین ترتیب کامپایلر دستورات شرطی دوم و سوم را هم بررسی می کند که هیچکدام true نبوده و در نتیجه دستورات بدنه آنها اجراء نخواهند شد.
در این نوع دستور شرطی شرط if بررسی شده اگر درست بود دستورات آن اجراء میشود در غیر اینصورت (یعنی اگر شرط درست نبود) دستورات بلوک else اجراء خواهند شد.
در زیر شکل کلی این دستور آمده است:
1 2 3 4 5 6 7 8 | if(boolean expression) { // execute this code block if expression evalutes to true } else { // always execute this code block when above if expression is false } |
همانگونه که در بالا مشاهده می کنید else دیگر دارای شرطی نیست تا کامپایلر آن را بررسی کند.
اگر شرط if دارای مقدار false باشد بدون انجام بررسی دیگری، بلوک else اجراء خواهد شد.
1 2 3 4 5 6 7 8 9 10 | int i = 10, j = 20; if (i > j) { Console.WriteLine("i is greater than j"); } else { Console.WriteLine("i is either equal to or less than j"); } |
خروجی دستورات زیر عبارت i is either equal to or less than j خواهد بود.
گاهی اوقات لازم است تا در صورت درست نبود شرط if شرط دیگری نیز بررسی گردد .
می توان در else نیز از شرط استفاده کرد :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | static void Main(string[] args) { int i = 10, j = 20; if (i > j) { Console.WriteLine("i is greater than j"); } else if (i < j) { Console.WriteLine("i is less than j"); } else { Console.WriteLine("i is equal to j"); } } |
خروجی عبارت i is less than j خواهد بود.
میتوان چندین if else را در شرط ها استفاده کرد و همچنین میتوان کلا بلوک else را از شرط حذف کنید.
1 2 3 4 5 6 7 8 | int i = 10, j = 20; if (i > j) Console.WriteLine("i is greater than j"); else if (i < j) Console.WriteLine("i is less than j"); else if (i == j) Console.WriteLine("i is equal to j"); |
خروجی دستورات بالا عبارت “i is less than j” خواهد بود.
گاهی اوقات لازم است ابتدا یک شرط بررسی شود و در صورت صحیح بودن شرطی دیگر بررسی شده و دستوراتی اجراء شود.
کدهای زیر را در نظر بگیرید:
1 2 3 4 5 6 7 8 9 10 11 12 13 | int i = 10; if (i > 0) { if (i <= 100) { Console.WriteLine("i is positive number less than 100"); } else { Console.WriteLine("i is positive number greater than 100"); } } |
خروجی عبارت “i is positive number less than 100” خواهد بود.
همانطور که در بالا مشاهده می کنید تمام دستورات شرطی داخلی زمانی بررسی می شوند که شرط بیرونی درست باشد.
چند نکته مهم:
در ابن بخش با دستورات شرطی if else و نحوه استفاده از آنها آشنا شدید.
در قسمت بعدی شما را به ternary operators که شکلی دیگر از دستورات شرطی هستند آشنا خواهیم کرد.