زبان برنامه نویسی سی شارپ شامل دستور تصمیمگیری دیگری است که switch نامیده می شود. در این فصل با دستور تصمیم گیری switch آشنا خواهیم شد.
دستور switch
زبان برنامه نویسی سی شارپ شامل دستور تصمیمگیری دیگری است که switch
نامیده می شود. دستور switch
کدهای موجود در بدنه خود را بسته به مقداری که از یک عبارت برگشت داده میشود اجرا میکند.
قاعده نوشتاری دستور switch
به شکلی است که در زیر آمده است :
switch(expression)
{ case <value1> // code block break; case <value2> // code block break; case <valueN> // code block break; default // code block break;
}
همانطور که در قاعده ی نوشتاری بالا مشاهده می کنید دستور switch
شامل یک عبارت در داخل یک پرانتز است. این دستور همچنین شامل چندین برچسب case
است که هر کدام از case
ها شامل یک مقدار در کنار خود است. دستور switch
همچنین دارای کلمات رزرو شده ی break
است که اجرای case
موردنظر را خاتمه می دهد. دستور switch
شامل قسمت دیگری به نام defult
نیز است که در صورتی که هیچ کدام از case
ها اجرا نشود این قسمت اجرا خواهد شد.
نکته : مقادیری که در کنار case
ها قرار می گیرند باید منحصر به فرد باشند. این مقادیر می توانند از نوع bool
، char
، string
، integer
، enum
و یا مقادیر null پذیر باشند.
در زیر نمونه مثالی ساده از دستور switch
آورده شده است :
using System;
public class Program
{
public static void Main()
{
int x = 10;
switch (x)
{ case 5:
Console.WriteLine("Value of x is 5");
break;
case 10:
Console.WriteLine("Value of x is 10");
break;
case 15:
Console.WriteLine("Value of x is 15");
break;
default:
Console.WriteLine("Unknown value");
break;
}
}
}
خروجی نمونه مثال بالا به شکل زیر است :
Value of x is 10
عبارت دستور switch میتواند یک متغیر با هر داده نوعی اعم از char
، enum
، int
، bool
، string
و ... باشد.
using System;
public class Program
{
public static void Main()
{
string statementType = "switch";
switch (statementType)
{
case "if.else":
Console.WriteLine("if...else statement");
break;
case "ternary":
Console.WriteLine("Ternary operator");
break;
case "switch":
Console.WriteLine("switch statement");
break;
}
}
}
خروجی نمونه مثال بالا به شکل زیر است :
switch statement
کلمه ی goto در دستور switch
در دستور switch
می توان از کلمه رزرو شده goto
برای پرش از بین case
های مختلف استفاده کرد.
using System;
public class Program
{
public static void Main()
{
string statementType = "switch";
switch (statementType)
{
case "DecisionMaking":
Console.Write(" is a decision making statement.");
break;
case "if.else":
Console.Write("if-else");
break;
case "ternary":
Console.Write("Ternary operator");
break;
case "switch":
Console.Write("switch statement");
goto case "DecisionMaking";
}
}
}
خروجی نمونه مثال بالا به شکل زیر است :
switch statement is a decision making statement.
دستورات switch تو در تو
در زبان برنامه نویسی سی شارپ میتوان دستورات switch
را به صورت تو در تو استفاده کرد. نمونه مثال زیر دستورات switch
تودرتو را به خوبی نشان میدهد.
using System;
public class Program
{
public static void Main()
{
int j = 5;
switch (j)
{
case 5:
Console.WriteLine(5);
switch (j - 1)
{
case 4:
Console.WriteLine(4);
switch (j - 2)
{
case 3:
Console.WriteLine(3);
break;
}
break;
}
break;
case 10:
Console.WriteLine(10);
break;
case 15:
Console.WriteLine(15);
break;
default:
Console.WriteLine(100);
break;
}
}
}
خروجی نمونه مثال بالا به شکل زیر است :
5 4
3
به خاطر داشته باشید که :
- دستور switch مقدار یک متغیر را با مجموعه ای از مقادیر ثابت مقایسه میکند.
- یک دستور switch می تواند شامل چندین برچسب case باشد.
- از break برای توقف اجرای دستورات در داخل switch استفاده میشود.
- در صورتی که دستورات هیچکدام از case ها اجرا نشود قسمت defult اجرا خواهد شد
- در زبان سی شارپ دستور switch را می توان به صورت تو در تو به کار برد