|
تاریخ انتشار:۱۰:۰ ۱۳۹۸/۷/۲۰
آموزش #C - جلسه ششم
آشنایی با دستور if و روند کنترلی و منطق برنامه
در قسمت قبل در مورد دیتا تایپهای کاراکتر و بولین صحبت شد، در این قسمت یکی از سرفصلهای بسیار مهم سی شارپ را مورد بحث قرار میدهیم. در این قسمت از بولین استفادهی زیادی میشود، پس اگر هنوز قسمت قبل را مطالعه نکرده اید، ابتدا به مطالعه قسمت قبل بپردازید.
Program Control Statements روند کنترلی و منطق برنامه، از مهمترین قسمتهای رفتار پویای یک زبان برنامه نویسی است. برای کنترل قسمتهایی از کد، سی شارپ دستورهای مخصوصی را فراهم کرده است تا برنامه نویس بتواند کنترل و منطق برنامه را در دست بگیرد. اکثر عبارتهای شرطی و حلقهای در #C از C و ++C میآیند.
سه دسته بندی برای Program Control Statement وجود دارد:
Selection Statements Iteration Statements Jump Statements
بخش Selection Statements شامل if و switch است و همینطور که از اسم آن مشخص است، در صورت داشتن شروط لازم عمل selection (انتخاب) را انجام میدهد. Iteration Statements شامل حلقههای do-while، while، for و foreach هستند و عملیات تکرار (iteration) را انجام میدهند. Jump Statements هم شامل return، goto continue، break و throw است. هر کدام از این موارد مفصل توضیح داده میشوند. با توجه به اینکه اصطلاحات انگلیسی در مقالات زنگ سی شارپ بسیار هستند، به منظور دانستن هریک از اصطلاحات (اگر با زبان انگلیسی آشنایی کافی ندارید) پیشنهاد میشود از Google Translate ،Fast Dictionary یا Persian Dectionary استفاده کنید.
The if statementشما میتوانید بخشی از یک برنامه را با استفاده از دستور شرطی if اجرا کنید. دستور if در سی شارپ از لحاظ syntax با سایر زبانهای برنامه نویسی مثل C و ++C و جاوا مشابه است.
ساده ترین شکل دستور if بصورت زیر است:
;if(condition) statement
در اینجا condition یک عبارت بولی (true یا false) است. اگر condition شامل مقدار true باشد، آنگاه statement اجرا میشود. اگر condition شامل مقدار false باشد در اینصورت statement کنار زده شده و اجرا نمیشود.
به نمونه ی زیر دقت کنید:
;if (10 < 11) Console.WriteLine("10 is less than 11")
در این مورد، تا زمانی که ۱۰ از ۱۱ کوچکتر باشد، condition برابر مقدار true است و دستور ()Console.WriteLine اجرا میشود. نمونه ی زیر را ببینید:
;if (10 < 9) Console.WriteLine("this won't be displayed")
در این مورد، بدلیل اینکه ۱۰ از ۹ کوچکتر نیست condition شامل مقدار false میشود، بنابراین دستور ()Console.WriteLine اجرا نمیشود. همانطور که در قسمت پنجم ذکر شد عملگرهای مقایسه ای دو آیتم را با هم مقایسه میکنند، یک عبارت که شامل عملگر مقایسه ای است، یک مقدار بولین دارد. از اینرو میتوان از عملگرهای مقایسه ای برای عبارت شرطی (condition) نیز استفاده کرد:
برنامه ی زیر چگونگی کار با دستور if را نشان میدهد:
.Demonstrate the if// ;using System class IfDemo } ()static void Main } ;int a, b, c ;a = 2 ;b = 3 ;if (a < b) Console.WriteLine("a is less than b") .This won't display anything // ;if (a == b) Console.WriteLine("you won't see this") ;()Console.WriteLine c = a - b; // c contains -1 ;Console.WriteLine("c contains -1") ;if (c >= 0) Console.WriteLine("c is non-negative") ;if (c < 0) Console.WriteLine("c is negative") ;()Console.WriteLine c = b - a; // c now contains 1 ;Console.WriteLine("c contains 1") ;if (c >= 0) Console.WriteLine("c is non-negative") ;if (c < 0) Console.WriteLine("c is negative") { {
خروجی تولید شده توسط این برنامه:
a is less than b c contains -1 c is negative c contains 1 c is non-negative
همانطور که مشاهده میکنید با توجه به مقادیر متغیرها محاسباتی انجام میشود و سپس با توجه به مقدار بولینی که در قسمت condition قرار میگیرد، statement ها اجرا میشوند.
نکته: برای کوتاه تر شدن خط کد در این برنامه، namespace های اضافی را حذف کردیم و تنها از فضاینام system که برای مثال ما ضروری است استفاده کردیم. همچنین string[] args را از متد ()Main حذف کردیم. اینها به صورت پیش فرض توسط ویژوال استدیو نوشته میشوند و ممکن است در مواقعی که به آنها نیازی نیست، حذفشان کنیم.
فرم کلی دستور if بدین شکل است:
;if(condition) statement ;else statement
این در صورتی است که شما برای قسمتهای if یا else تنها یک statement دارید و نیازی نیست از بلاک (براکت باز و بسته) استفاده کنید. عبارت else اختیاری است. همچنین قسمتهای if و else میتوانند در یک بلاک قرار بگیرند. اگر برای هر کدام، یک statement داشته باشیم استفاده از بلاک اختیاری است، اما اگر برای هر کدام، بیشتر از یک statement داشته باشیم استفاده از بلاک اجباری است و فرم کلی آن بشکل زیر است:
if(condition) } statement sequence { else } statement sequence {
در اینجا منظور از statement sequence دنباله ای از statement ها است. اگر condition شامل مقدار true باشد، آنگاه بلوک if اجرا میشود در غیر اینصورت (اگر از عبارت else استفاده کرده باشیم) بلاک else اجرا میشود. هیچگاه هر دو آنها با هم اجرا نخواهند شد. در قسمت condition همیشه باید مقدار بولین تولید شود.
به نمونهی زیر توجه کنید:
;using System public class MyClass } ()public static void Main } ;int num1 = 6 ;int num2 = 23 ;int result = num1 + num2 if (result > 25) } ;Console.WriteLine("Result is more then 25") { else } ;Console.WriteLine("Result is less then 25") { { {
در این مثال، مقدار متغیر num1 و num2 با هم جمع میشوند و نتیجه ی آنها در متغیر result ذخیره میشود که نهایتاً result شامل مقدار ۲۹ میشود. همانطور که میبینید مقدار result با ۲۵ مقایسه شده است و میدانیم که پاسخ true است. بدلیل اینکه مقدار condition برابر با true شده است، بلاک if اجرا میشود و بلاک else نادیده گرفته شده و هیچگاه اجرا نخواهد شد.
به نمونه ی بعدی توجه کنید:
;using System public class ifDemo } ()public static void Main } if (2 + 2 == 5) ;Console.WriteLine("Does not compute"); // this won't be displayed else ;Console.WriteLine("This is False!") { {
در این مثال، در قسمت condition، حاصل ۲ + ۲ که برابر با ۴ است، توسط عملگر مقایسه ای == با ۵ مقایسه میشود و همانطور که میدانید ۴ و ۵ باهم برابر نیستند، بنابراین مقدار condition برابر با false میشود. با این حساب بلاک دستور if اجرا نمیشود و بلاک دستور else اجرا خواهد شد.
نکته: همینطور که میبینید، هم if و هم else، به دلیل اینکه یک statement بیشتر ندارند، استفاده از بلاک (براکت باز و بسته) اختیاری است. در قسمت بعدی، شرح دستور if کامل میشود و بقیه ی بخشهای Program Control Statement در قسمتهای بعدی بیان میشود.
منبع:webtarget
|
|
|