در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش سی شارپ (#C) قسمت 11 : دستورات کنترلی و حلقه ها دو

در ادامه سری مباحث آموزش زبان برنامه نویسی سی شارپ، در این قسمت مباحث مربوط به دستورات کنترلی را ادامه خواهیم داد. در قسمت قبلی به بررسی دستور 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 #آموزش_استفاده_از_حلقه_ها_در_سی_شارپ #آموزش_برنامه_نویسی_سی_شارپ #آموزش_برنامه_نویسی #دستورات_کنترلی_در_برنامه_نویسی #مبانی_برنامه_نویسی_با_سی_شارپ #آموزش_مبانی_برنامه_نویسی
عنوان
1 آموزش سی شارپ (#C) قسمت 1 : مقدمه رایگان
2 آموزش سی شارپ (#C) قسمت 2 : ابزارهای مورد نیاز دوره رایگان
3 آموزش سی شارپ (#C) قسمت 3 : آشنایی با .NET Framework یک رایگان
4 آموزش سی شارپ (#C) قسمت 4 : آشنایی با .NET Framework دو رایگان
5 آموزش سی شارپ (#C) قسمت 5 : آشنایی با محیط ویژوال استودیو رایگان
6 آموزش سی شارپ (#C) قسمت 6 : ساختار برنامه ها و کامپایلر سی شارپ رایگان
7 آموزش سی شارپ (#C) قسمت 7 : دستورات کنسول و متغیرها رایگان
8 آموزش سی شارپ (#C) قسمت 8 : نوع های داده اولیه رایگان
9 آموزش سی شارپ (#C) قسمت 9 : آشنایی با عملگرها رایگان
10 آموزش سی شارپ (#C) قسمت 10 : دستورات کنترلی و حلقه ها یک رایگان
11 آموزش سی شارپ (#C) قسمت 11 : دستورات کنترلی و حلقه ها دو رایگان
12 آموزش سی شارپ (#C) قسمت 12 : دستورات کنترلی و حلقه ها سه رایگان
13 آموزش سی شارپ (#C) قسمت 13 : دستورات کنترلی و حلقه ها چهار رایگان
14 آموزش سی شارپ (#C) قسمت 14 : آشنایی با آرایه ها و دستور For Each رایگان
15 آموزش سی شارپ (#C) قسمت 15 : آشنایی با متدها یک رایگان
16 آموزش سی شارپ (#C) قسمت 16 : آشنایی با متدها دو رایگان
زمان و قیمت کل 0″ 0
3 نظر
zahra .m

سلام استاد.

لطفا بیشتر درباره زمان هایی که میشه از دستود return در Switch استفاده کرد توضیح بدید.اگر امکانش هست با یه مثال!

حسین احمدی

سلام، بیشترین استفاده return در ساختار switch زمانی هست که شما بر اساس یک پارامتر ورودی قصد دارید یک مقدار رو برگردونید، برای مثال تابع زیر رو در نظر بگیرید:

public int GetState(string input)
{
    swtich(input)
    {
        case 'Value1':
            return 0;
        case 'Value2':
            return 1;
        case 'Value3':
            return 2;
        case 'Value4:
            return 3;
        default: 
            return 0;
    }
}

تو کد بالا، بر اساس یک ورودی یک خروجی از نوع int ایجاد می کنیم، مثال کاربردی تری که می تونم بزنم الگوی Factory هست، شما یک interface تعریف کردید و چند کلاس دارید که این Interface رو پیاده سازی کرده، حالا داخل یک متد بر اساس پارامتر ورودی می خوایید کلاس مورد نظر رو ایجاد و بر گردونید:

public interface IBase
{
}

public class ClassA : IBase
{
}

public class ClassB : IBase
{
}

public IBase ClassFactory(string type)
{
    switch(type):
    {
        case "A":
            return new ClassA();
        case "B":
            return new ClassB();
        default:
            return null;
    }
}
zahra .m

متشکرم استاد.

من تازه کار هستم و با اینترفیس آشنایی ندارم.ولی از مثالی که درباره تابع زدید تا حدودی متوجه مطلب شدم.

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....