تا %60 تخفیف خرید برای 4 نفر با صدور مدرک فقط تا
00 00 00

آموزش سی شارپ (#C) قسمت 11 : دستور switch

حسین احمدی
حسین احمدی
13 پسند
5184 بازدید
3 نظر
71 ماه قبل

در ادامه سری مباحث آموزش زبان برنامه نویسی سی شارپ، در این قسمت مباحث مربوط به دستورات کنترلی را ادامه خواهیم داد. در قسمت قبلی به بررسی دستور if پرداختیم. در این قسمت قصد داریم که با دستور switch و نحوه استفاده از آن در برنامه هایمان آشنا شویم. اما پیش از شروع، به قسمت قبل برمی گردیم. در قسمت قبل گفتیم که با دستور if می توانیم نسبت به کنترل روند اجرای برنامه بر اساس حالت های مختلف اقدام نماییم. به دستور زیر دقت کنید:

var name = Console.ReadLine();
if(name == "Hossein")
{
    Console.WriteLine("Hello Hossein!");
}
else if(name == "ITPro")
{
    Console.WriteLine("Welcome to ITPro.IR");
}
else if(name == "Information Technology")
{
    Console.WriteLine("Just ITPro.ir");
}

همانطور که در کد بالا مشاهده می کنید، دستورات if بر اساس مقدار متغیر عمل می کنند. یعنی اگر برابر مقداری بود، دستورات اول، مقدار دوم دستورات دوم و ...

اما در این حالت ما می توانیم از دستور switch استفاده کنیم. دستور switch بر اساس مقدار یک مقدار حالت های مختلف را بررسی کرده و دستورات قسمت مربوطه را اجرا خواهد کرد. ساختار کلی دستور switch به صورت زیر است:

switch({variable})
{
    case {value1}:
        statements
        break;
    case {value2}:
        statements
        break
        .
        .
        .
    case {value-n}:
        statements
        break;
    default:
        statements
        break;
}

بخش بالا، ساختار کلی دستور switch را نشان می دهد. در ادامه به بررسی بخش های مختلف دستور بالا خواهیم پرداخت:

  1. ساختار switch با دستور switch شروع شده و مقابل آن در داخل پردانتز نام متغیری که قصد داریم مقادیر آن را چک کنیم قرار می گیرد. یعنی به جای {variable} نام متغیر مورد نظر را می نویسیم.
  2. دستورات مخصوص عبارت switch بین علامت های brace باز و بسته قرار میگیرند.
  3. بوسیله دستور case به ترتیب شرایط مختلف را مشخص می کنیم. به جای {value} در مقابل دستور case مقدار مورد نظر را می نویسیم.
  4. بعد از نوشتن دستور مربوط به هر case باید انتهای case را با دستور break مشخص کنیم. در غیر اینصورت با پیغام خطا مواجه خواهیم شد.
  5. در بخش default، دستوراتی که در صورت برقرار نبودن هیچ کدام از شرط های case باید اجرا شود را می نویسیم. نوشتن بخش default دلخواه است و می توانیم از نوشتن آن صرفنظر کنیم.

در ادامه، دستور if که در ابتدای این مقاله نوشتیم را به دستور switch تبدیل می کنیم. همانطور که مشاهده میکنید، در تمامی شرط های if از متغیر name استفاده شده است. پس ما می توانیم دستور if را به دستور switch تبدیل کنیم. به مثال زیر دقت کنید:

var name = Console.ReadLine();

switch (name)
{
    case "Hossein":
        Console.WriteLine("Hello Hossein!");
        break;
    case "ITPro":
        Console.WriteLine("Welcome to ITPro.ir");
        break;
    case "Information Technology":
        Console.WriteLine("Just ITPro.ir");
        break;
}

دستورات بالا، دقیقاً معادل عبارت if ابتدای آموزش هستند. اما بخش default! فرض کنید دستورات if به صورت زیر بودند:

if(name == "Hossein")
{
    Console.WriteLine("Hello Hossein!");
}
else if(name == "ITPro")
{
    Console.WriteLine("Welcome to ITPro.IR");
}
else if(name == "Information Technology")
{
    Console.WriteLine("Just ITPro.ir");
}
else
{
    Console.WriteLine("Input is not valid!");
}

قسمت else آخر، دقیقاً کار default را برای ما انجام می دهد:


switch (name)
{
    case "Hossein":
        Console.WriteLine("Hello Hossein!");
        break;
    case "ITPro":
        Console.WriteLine("Welcome to ITPro.ir");
        break;
    case "Information Technology":
        Console.WriteLine("Just ITPro.ir");
        break;
    default:
        Console.WriteLine("Input is not valid!");
        break;
}

زمانی که ما تصمیم داریم از دستور switch استفاده کنیم، می توانیم برای یک بدنه case چند مقدار مختلف را مشخص کنیم. برای مثال، دستور if زیر را در نظر بگیرید:

if(name == "ITPro" || name == "www.tosinso.com" || name == "tosinso.com")
{
    Console.WriteLine("Welcome to ITPro.IR");
}

برای شبیه سازی دستور بالا با دستور switch به صورت عمل می کنیم:

switch(name)
{
    case "ITPro":
    case "www.tosinso.com":
    case "tosinso.com":
        Console.WriteLine("Welcome to ITPro.IR");
        break;
}

همانطور که مشاهده می کنید، چند دستور case پشت سر هم نوشته شده است، به این معنا که در صورت برابر بودن مقدار name با هریک از مقادیر دستور case، وارد بخش مربوطه شود.

نکته: زمانی که داخل قسمت case، از دستور return استفاده می کنیم، نیازی به نوشتن دستور break نیست:

switch(name)
{
    case "ITPro":
    case "www.tosinso.com":
    case "tosinso.com":
        return "Welcome to ITPro.IR";
}

نکته: زمانی که قصد تعریف یک متغیر داخل قسمت case را داریم و همان متغیر در case دیگری، در همان دستور switch نیز تعریف می شود، باید بدنه case را با علامت های brace باز و بسته مشخص کنیم:

switch(name)
{
    case "Value1":
    {
        var number = 12;
        break;
    }
    case "Value2":
    {
        var number = 34;
        break;
    }
}

در این قسمت یا ساختار کلی دستور switch آشنا شدیم و با دو بخش اول قسمت هشتم، دستورات کنترلی if و switch را بررسی کردیم. در بخش های بعدی به بررسی حلقه ها و دستور if خواهیم پرداخت. ITPro باشید.

نویسنده : حسین احمدی

منبع : جزیره برنامه نویسی وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است

#آموزش_سی_شارپ #استفاده_از_دستورات_کنترلی_در_سی_شارپ #آموزش_برنامه_نویسی_c# #دستور_switch #آموزش_استفاده_از_حلقه_ها_در_سی_شارپ #آموزش_برنامه_نویسی_سی_شارپ #آموزش_برنامه_نویسی #دستورات_کنترلی_در_برنامه_نویسی #مبانی_برنامه_نویسی_با_سی_شارپ #آموزش_مبانی_برنامه_نویسی
نظر شما
برای ارسال نظر باید وارد شوید.
3 نظر