بررسی شرط با استفاده از ساختار switch در سی شارپ

از این ساختار برای بررسی حالت های مختلف یک متغیر استفاده می شود و عملکردی نزدیک به if دارد. تفاوت عمده آنها این است که با ساختار switch تنها برابری را می توان بررسی کرد اما با استفاده از if می توان شرط هایی مانند بزرگتر، کوچکتر و ... را نیز بررسی نمود.

نحوه استفاده

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

switch(number)
{
	case 1:
		statement 1;
		break;
	case 2:
		statement 2;
		break;
	...
	default:
		statement n;
		break;
}

در ساختار switch برای هر مقایسه از دستور case استفاده می شود و case 1 یعنی اگر محتوای متغیر number برابر 1 بود. در مقابل هر مقایسه از علامت : استفاده شده و سپس دستوراتی را که در صورت برقرار بودن شرط می بایست اجرا شود را تایپ می کنیم (statement 1). هر case می بایست شامل دستور break باشد تا پس از بررسی از ساختار switch خارج شود، اگر این دستور ذکر نشود سایر حالت ها نیز بررسی می گردند. دستورات default همانند else انتهای if می باشد و زمانی اجرا می شود که هیچ یک از شرط ها برقرار نباشند.

مثال: برنامه ای بنویسید که عددی را به عنوان شماره روز هفته دریافت کرده و نام روز را نمایش دهد.

static void Main(string[] args)
{
    int day;
    Console.Write("Please enter day number:");
    day = int.Parse(Console.ReadLine());
    switch (day)
    {
        case 1:
            Console.WriteLine("Saturday");
            break;
        case 2:
            Console.WriteLine("Sunday");
            break;
        case 3:
            Console.WriteLine("Monday");
            break;
        case 4:
            Console.WriteLine("Tuesday");
            break;
        case 5:
            Console.WriteLine("Wednesday");
            break;
        case 6:
            Console.WriteLine("Thursday");
            break;
        case 7:
            Console.WriteLine("Friday");
            break;
        default:
            Console.WriteLine("Invalid number");
            break;
    }
    Console.ReadLine();
}

چه زمانی از if استفاده کنیم و چه زمانی از switch؟

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