آموزش برنامه نویسی

آموزش سی شارپ

آموزش سی شارپ

پربیننده ترین مطالب
پیوندهای روزانه

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

var name = Console.ReadLine();
if(name == "mobin")
{
    Console.WriteLine("Hello mobin!");
}
else if(name == "neetbook")
{
    Console.WriteLine("Welcome to neetbook.blog.IR");
}
else if(name == "Information Technology")
{
    Console.WriteLine("Just neetbook.blog.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 "mobin":
        Console.WriteLine("Hello mobin!");
        break;
    case "ITPro":
        Console.WriteLine("Welcome to neetbook.blog.ir");
        break;
    case "Information Technology":
        Console.WriteLine("Just neetbook.blog.ir");
        break;
}

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

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

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


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

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

if(name == "neetbook" || name == "www.neetbook.blog.ir" || name == "neetbook.blog.ir")
{
    Console.WriteLine("Welcome to neetbook.blog.IR");
}

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

switch(name)
{
    case "neetbook":
    case "www.neetbook.blog.ir":
    case "neetbook.blog.ir":
        Console.WriteLine("Welcome to neetbook.blog.IR");
        break;
}

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

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

switch(name)
{
    case "neetbook":
    case "www.neetbook.blog.ir":
    case "neetbook.blog.ir":
        return "Welcome to neetbook.blog.IR";
}

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

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

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

منبع:
programming.itpro.ir
  • متین تیماسی ، مبین خسروی و عمران جودکی

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی