با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش #c ، را دنبال می کنند. در قسمت قبل در مورد عملگرهای سه جانبه در زبان #C توضیح دادیم.
#C شامل یک دستور تصمیم گیری دیگر به نام switch است که در این بخش آن را شرح خواهیم داد.
ساختار کلی در switch case به صورت زیر است :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | switch(expression) { case <value1> // code block break; case <value2> // code block break; case <valueN> // code block break; default // code block break; } |
همانطور که در بالا مشاهده می کنید، دستور switch حاوی چند بلوک کد ترتیبی است که هر بلوک شامل یک شرط است که با کلمه کلیدی Case بررسی میشود، اگر شرط درست باشد دستورات بلوک اجراء شده و کامپایلر در آخر توسط کلمه کلیدی break از بدنه دستور شرطی switch خارج می شود .
اگر هم شرط درست نباشد به بلوک بعدی رفته و شرط آن را بررسی کرده و …
نکته : عبارت بررسی شرط در case باید یک عبارت واحد باشد که میتواند دارای یکی از مقادیر : Bool ، enum ، int ، string ، char و یا یک نوع غیر nullable باشد.
مانند مثال زیر :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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; } |
1 | Value of x is 10 |
دستور سوئیچ می تواند متغیری از هر نوع داده مانند string ، bool، int، enum، char و … را شامل شود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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; } |
خروجی :
1 | switch statement |
با استفاده از goto case در دستور switch میتوان به بلوک خاصی از switch پرید ، به مثال زیر توجه کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | string statementType = "switch"; switch (statementType) { case "DecisionMaking": Console.Write("if-else 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"; } |
خروجی :
1 | switch statement is a decision making statement. |
switch case را در زبان #C میتوان به صورت تودرتو نیز استفاده کرد مانند مثال زیر:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | 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; } |
خروجی :
1 2 3 | 5 4 3 |
در این قسمت با دستور switch آشنا شدیم و چند نمونه از آن را با هم کدنویسی کردیم.
در قسمت بعدی از این آموزش به معرفی حلقه ها (loops) می پردازیم و انواع آن را برای شما شرح میدهیم.