آموزش سی شارپ-دستورات if و switch

به بخش جدید آموزش سي شارپ خوش آمدید.آموزش ساختار دستوری if در C# :یکی از مهم ترین ساختارهای دستوری در هر زبان برنامه نویسی از جمله C#، دستور if است. توانایی ساخت دستورات شرطی کلی از مهم ترین کارهایی است که بایستی بتوان با زبان ها ی برنامه نویسی انجام داد. در C#، ساختار شرطی if بسیار ساده و کاربردی است. اگر از ساختار دستوری شرطی if در هر زبان برنامه نویسی دیگری استفاده کرده باشید، به راحتی می توانید در C# نیز از آن بهره بگیرید. ساختار دستور شرطی if نیاز مند یک مقدار boolean است که یا true است یا false. در برخی از زبان های برنامه نویسی، چندین نوع داده ای را می توان به صورت اتوماتیک به Boolean تبدیل کرد، اما در C# باید مستقیما از نوع داده ای Boolean استفاده کنید. برای مثال نمی توانید از نوع داده ای عددی int به صورت مستقیم استفاده کنید، اما می توانید آن را با یک مقدار دیگر قیاس کرده و مقدار true یا false نتیجه را مورد استفاده قرار دهید.در درس قبلی، به آموزش نحوه تعریف و استفاده از متغیرها (Variables) در زبان C# پرداختیم. در این درس هم به آموزش نحوه کار با دستورات شرطی در C# می پردازیم. برای این منظور کد مثال زیر را با دقت مطالعه کنید :using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int number; Console.WriteLine(&quotPlease enter a number between 0 and 10:&quot); number = int.Parse(Console.ReadLine()); if(number > 10) Console.WriteLine(&quotHey! The number should be 10 or less!&quot); else if(number < 0) Console.WriteLine(&quotHey! The number should be 0 or more!&quot); else Console.WriteLine(&quotGood job!&quot); Console.ReadLine(); } } } آموزش سي شارپ : در کد مثال فوق از دو دستور شرطی if استفاده کرده ایم تا چک کنیم آیا عدد ورودی توسط کاربر، بین 0 تا 10 است یا خیر. به همراه دستور if از کلید واژه else نیز استفاده شده است. قسمت کد else زمانی اجرا می شود که شرط بخش if درست نباشد.اگر در کد مثال فوق دقت کرده باشید، ما از کاراکترهای {} برای دسته بندی دستورات if و else ها استفاده نکرده ایم.. این یک قانون در C# است. اگر کد نوشته شده فقط در حد یک متن خطی باشد، نیازی به استفاده از {} برای دسته بندی کدها نیست. https://www.aparat.com/v/pzJ0n حجم کد نوشته شده برای مقایسه مقدار یک عدد در مثال فوق کمی زیاد به نظر می رسد. همان کد را می توانید به صورت زیر، خلاصه تر بنویسید :if((number > 10) || (number < 0)) Console.WriteLine(&quotHey! The number should be 0 or more and 10 or less!&quot); else Console.WriteLine(&quotGood job!&quot);ما هر یک از دستورات شرطی را درون یک پرانتز قرار داده و سپس از عملگر ǁ که به معنلی "یا"، "or" می باشد، استفاده کرده ایم تا چک کنیم عدد واردشده از 10 بزرگتر یا کوچکتر از 0 است. عملگر دیگری که در این گونه موارد نیز می توانید استفاده کنید عملگر AND به معنای "و" است که به صورت && نوشته می شود. آیا می توانیم در کد مثال دوم از عملگر AND به جای or استفاده کنیم؟. بله، فقط کافی است کد را به صورت زیر بازنویسی کنیم :if((number <= 10) && (number >= 0)) Console.WriteLine(&quotGood job!&quot); else Console.WriteLine(&quotHey! The number should be 0 or more and 10 or less!&quot);در این درس عملگرهای "کوچکتر از" و "بزرگتر از" را نیز معرفی کردیم. https://www.aparat.com/v/s6AOp آموزش سي شارپ : آموزش کار با دستور Switch در C#دستور Switch همانند مجموعه ای از دستورات پشت سر هم if عمل می کند. دستور Switch درواقع لیستی از حالت های ممکن است که برای هر حالت یک دستور یا کدی جهت اجرا پیش بینی شده است. این دستور همچنین یک حالت default یا پیش فرضی دارد که در صورتی که هیچ یک از حالات آن true نباشد، اجرا خواهد شد.یک دستور ساده Switch ساختاری هماند کد مثال زیر دارد :int number = 1; switch(number) { case 0: Console.WriteLine("The number is zero!"); break; case 1: Console.WriteLine("The number is one!"); break; }مقدار شناسه یا identifier (مقدار متغیری که می خواهیم دستور Switch بر حسب آن عمل کند) را پس از واژه کلیدی Switch قرار می دهیم. سپس لیستی از انواع حالت های مختلف برای آن مقدار توسط هر دستور case مشخص شده و مقدار شناسه با مقدار هر case مقایسه می شود. اگر مقدار شناسه با مقدار هر کدام برابر نبود، دستورات بخش پیش فرض default اجرا می شود.اگر دقت کرده باشید، در پایان هر case یک دستور break قرار داده شده است. برای چیست؟ اگر مقدار یک case با مقدار شناسه دستور Switch برابر شود، دستورات آن case اجرا شده و اگر در انتهای case دستور break وجود نداشته باشد، دستورات case های بعدی نیز اجرا خواهد شد. به عبارت دیگر، دستور break ، باعث توقف روند اجرای دستورات Switch شده و برنامه به خط کد بعد از Switch می فرستد. در نوشتن break دقت لازم به عمل آورید، ؟؟؟؟؟ نوشتن آن می تواند کلا برنامه را دچار اختلال کنید.هنگامی که هم یک تابع را در دستورات یک case تعیین می کنید، می توانید با استفاده از return خروجی تابع را به عنوان خروجی Switch برگردانید.در کد مثال، ما از یک متغیر عددی integer به عنوان شناسه دستور Switch استفاده کرده ایم، اما این شناسه می تواند از نوع متنی String و یا هر نوع داده ای دیگر زبان C# باشد.در مثال زیر، ابتدا یک مقدار را به عنوان ورودی از کار برگررفته ایم، سپس آن را به عنوان یک متغیر متنی String به دستور Switch ارسال نموده ایم. در کد مثال زیر، برای هر دو مقدار “yes” و “Maybe” یک دستور مشترک را تعیین کرده ایم.Console.WriteLine(&quotDo you enjoy C# ? (yes/no/maybe)&quot); string input = Console.ReadLine(); switch(input.ToLower()) { case &quotyes&quot: case &quotmaybe&quot: Console.WriteLine(&quotGreat!&quot); break; case &quotno&quot: Console.WriteLine(&quotToo bad!&quot); break; }در کد مثال فوق، سوالی از کاربر پرسیده شده و از وی خواسته شد یکی از مقادیر “yes”، “no” و “maybe” را وارد نماید. سپس مقدار وارد شده از ورودی توسط دستور Consale.ReadLine() خوانده شده و یک دستور Switch بر مبنای آن طراحی شده است. برای سهولت کار کاربر، توسط دستور ToLower() ، کاراکترهای ورودی کاربر را به حروف کوچک تبدیل کرده ایم تا در هنگام مقایسه با مقادیر Case ها، فرقی بین مقدار وارد شده برای حروف بزرگ و کوچک وجود نداشته باشد. اما بدون وجود دستور default در Switch، اگر کاربر در مثال فوق مقداری غیر از مقادیر تعیین شده برای case ها وارد نماید، برنامه هیچ خروجی نخواهد داشت. بنابراین کد مثال فوق را به همراه default به صورت زیر بازنویسی می کنیم :Console.WriteLine(&quotDo you enjoy C# ? (yes/no/maybe)&quot); string input = Console.ReadLine(); switch(input.ToLower()) { case &quotyes&quot: case &quotmaybe&quot: Console.WriteLine(&quotGreat!&quot); break; case &quotno&quot: Console.WriteLine(&quotToo bad!&quot); break; default: Console.WriteLine(&quotI'm sorry, I don't understand that!&quot); break; default: Console.WriteLine(&quotI'm sorry, I don't understand that!&quot); break; } https://www.aparat.com/v/8jeiE اگر کاربر مقداری به غیر از مقادیر تعیین شده برای case ها وارد نماید، بخش default به صورت پیش فرض اجرا خواهد شد.آموزش سي شارپ ادامه دارد