הוראת switch
הוראת switch ב C#-היא מבנה בקרת זרימה שמאפשר לבצע פעולות שונות בהתאם לערך של משתנה מסוים. זהו מבנה נוח וקריא כאשר יש מספר אפשרויות לפעולה, והוא יכול להוות תחליף קריא ומסודר למבנה if-else if.
מבנה בסיסי של switch
switch (expression)
{
case value1:
// קוד שיתבצע אם הביטוי שווה ל־value1
break;
case value2:
// קוד שיתבצע אם הביטוי שווה ל־value2
break;
default:
// קוד שיתבצע אם אף אחד מהערכים לא תואם
break;
}- expression - הביטוי שאותו בודקים. בדרך כלל יהיה זה משתנה מספרי, מחרוזת או enum.
- case - כל מקרה בודק ערך ספציפי של הביטוי.
- break - מסיים את מקטע ה־case ויוצא מהוראת ה־switch.
- default - אפשרות ברירת המחדל, שמתבצעת אם אף אחד מהמקרים אינו תואם.
דוגמה לשימוש בסיסי
נניח שיש לנו משתנה day שמייצג יום בשבוע, ונרצה לבצע פעולה שונה לכל יום:
string day = "Monday";
switch (day)
{
case "Monday":
Console.WriteLine("Start of the week!");
break;
case "Friday":
Console.WriteLine("Almost weekend!");
break;
case "Saturday":
case "Sunday":
Console.WriteLine("It's weekend!");
break;
default:
Console.WriteLine("Mid-week day.");
break;
}שימי לב
break: בשפת C# אין מעבר אוטומטי ממקטע case שמכיל הוראות למקטע הבא. מקטע כזה חייב להסתיים בהוראת יציאה מתאימה, כגון break; אחרת מתקבלת שגיאת הידור.
אפשר להצמיד כמה תוויות case לאותו מקטע קוד, כפי שמופיע בדוגמה עבור Saturday ו־Sunday.
ברירת מחדל (default): מומלץ לכלול אותה כאשר רוצים לטפל גם בערכים שאינם תואמים לאף מקרה קיים.