مشخصات مقاله
-
3012
-
5.0
-
34167
-
1
-
1
آموزش کار با دستور Switch در C#
وقتی در C# با چند شرط و حالت مختلف سروکار داری، یکی از راههای مرتب و خوانا برای بررسی این حالتها، استفاده از دستور Switch هست. با استفاده از این دستور میتونی مقدار یک متغیر رو بررسی کنی و برای هر مقدار، کد مشخصی رو اجرا کنی.
اگه در حال یادگیری C# هستی، آشنایی با Switch میتونه کار با شرطها و کنترل روند اجرای برنامه رو برات سادهتر کنه. در ادامه با ساختار Switch، نحوه استفاده از case و default و همچنین کاربرد break و return در اون آشنا میشیم.
آموزش کار با دستور Switch در C# :
دستور Switch تقریباً شبیه مجموعهای از دستورات if پشت سر هم عمل میکنه. در واقع، Switch لیستی از حالتهای مختلفه که برای هر حالت، یک دستور یا کد مشخص برای اجرا در نظر گرفته میشه. این دستور یک حالت default یا پیشفرض هم داره که اگه هیچکدوم از حالتها برقرار نباشن، اجرا میشه.
یک دستور ساده 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 مقایسه میشه. اگه مقدار شناسه با هیچکدوم از caseها برابر نباشه، دستورات بخش پیشفرض یا default اجرا میشن.
اگه دقت کرده باشی، در انتهای هر case یک دستور break قرار گرفته. اما چرا از break استفاده میکنیم؟ وقتی مقدار یک case با مقدار شناسه دستور Switch برابر باشه، دستورات همون case اجرا میشن. اگه در انتهای case دستور break وجود نداشته باشه، دستورات caseهای بعدی هم اجرا خواهند شد. به عبارت دیگه، دستور break باعث میشه اجرای دستورات Switch متوقف بشه و برنامه به خط کدی که بعد از Switch قرار داره بره. بنابراین هنگام نوشتن break باید دقت کافی داشته باشی؛ چون یک اشتباه در استفاده از اون میتونه روند اجرای برنامه رو دچار مشکل کنه.
وقتی یک تابع رو داخل دستورات یک case قرار میدی، میتونی با استفاده از return خروجی تابع رو به عنوان خروجی Switch برگردونی.
در کد مثال، از یک متغیر عددی integer به عنوان شناسه دستور Switch استفاده کردیم، اما این شناسه میتونه از نوع متنی String یا هر نوع داده دیگهای در زبان C# باشه.
در مثال زیر، ابتدا یک مقدار رو به عنوان ورودی از کاربر دریافت کردیم و بعد اون رو به صورت یک متغیر متنی String به دستور Switch فرستادیم. در این مثال، برای هر دو مقدار “yes” و “Maybe” یک دستور مشترک در نظر گرفتیم.
Console.WriteLine("Do you enjoy C# ? (yes/no/maybe)");
string input = Console.ReadLine();
switch(input.ToLower())
{
case "yes":
case "maybe":
Console.WriteLine("Great!");
break;
case "no":
Console.WriteLine("Too bad!");
break;
}
در کد مثال بالا، یک سؤال از کاربر پرسیده شده و از اون خواسته شده یکی از مقادیر “yes”، “no” و “maybe” رو وارد کنه. بعد مقدار واردشده با استفاده از دستور Console.ReadLine() خونده شده و یک دستور Switch بر اساس اون طراحی شده. برای اینکه کاربر راحتتر بتونه مقدار رو وارد کنه، با استفاده از دستور ToLower() کاراکترهای ورودی رو به حروف کوچک تبدیل کردیم تا هنگام مقایسه با مقادیر Caseها، تفاوتی بین حروف بزرگ و کوچک وجود نداشته باشه. اما چون در این Switch از دستور default استفاده نکردیم، اگه کاربر مقداری غیر از مقادیر تعیینشده برای caseها وارد کنه، برنامه هیچ خروجیای نخواهد داشت. بنابراین کد مثال بالا رو همراه با default به شکل زیر بازنویسی میکنیم:
Console.WriteLine("Do you enjoy C# ? (yes/no/maybe)");
string input = Console.ReadLine();
switch(input.ToLower())
{
case "yes":
case "maybe":
Console.WriteLine("Great!");
break;
case "no":
Console.WriteLine("Too bad!");
break;
default:
Console.WriteLine("I'm sorry, I don't understand that!");
break;
}
اگه کاربر مقداری غیر از مقادیر تعیینشده برای caseها وارد کنه، بخش default به صورت پیشفرض اجرا میشه.
اگه در حال یادگیری C# هستی و میخوای مفاهیم این زبان رو قدمبهقدم و اصولی یاد بگیری، میتونی مسیر یادگیریت رو با یک آموزش کاملتر ادامه بدی. دوره آموزش C# میتونه قدم بعدی مناسبی برات باشه تا با مفاهیم و ساختارهای مختلف این زبان بیشتر آشنا بشی.