Menu
CoddyTech

משפט Switch

חלק מהיחידה יסודות במסלול ה-C# של Coddy. שיעור 27 מתוך 69.

הוראת switch דומה להוראת if מרובת אפשרויות. במקום להעריך תנאי יחיד, היא בודקת את הערך של משתנה מול כמה מקרים ומבצעת את הקוד המשויך למקרה התואם.

הנה המבנה הבסיסי של משפט switch:

switch (variable) {
    case value1:
        // קוד לביצוע אם variable שווה ל-value1
        break;
    case value2:
        // קוד לביצוע אם variable שווה ל-value2
        break;
    // ... מקרים נוספים
    default:
        // קוד לביצוע אם אף מקרה אינו מתאים
        break;
}
  • אחרי מילת המפתח switch מופיע המשתנה שרוצים לבדוק, בתוך סוגריים.
  • כל case מייצג ערך אפשרי של המשתנה.
  • הקוד שבתוך כל case מתבצע אם המשתנה תואם לערך של אותו מקרה.
  • כל case שאינו ריק חייב להסתיים ב-break (או ב-return), שיוצא מה-switch. השמטתו גורמת לשגיאת קומפילציה: בניגוד ל-C או ל-Java, C# לעולם לא מאפשרת לביצוע «לגלוש» ממקרה אחד למקרה הבא. רק תוויות מקרה ריקות שמופיעות זו מעל זו חולקות את אותו קוד, כפי שמוצג בהמשך.
  • המקרה default הוא אופציונלי ומתבצע אם אף מקרה אחר אינו תואם.

הנה דוגמה:

int day = 3;
string dayName;
switch (day) {
    case 1:
        dayName = "Monday";
        break;
    case 2:
        dayName = "Tuesday";
        break;
    // ... מקרים עבור ימים אחרים
    default:
        dayName = "Invalid day";
        break;
}

אפשר גם לשלב כמה מקרים באחד:

int day = 3;
string dayName;
switch (day) {
    case 1:
    case 2:
    case 3:
        dayName = "Start of week";
        break;
    // ... מקרים עבור ימים אחרים
    default:
        dayName = "Invalid day";
        break;
}
challenge icon

אתגר

מתחילים

צרו תוכנית שמקבלת מספר חודש (1 עבור ינואר, 2 עבור פברואר וכו׳) ומדפיסה את העונה שאליה הוא שייך. השתמשו בהוראת switch עבור הלוגיקה.

העונות והחודשים המתאימים להן הם:

  • Winter: דצמבר (12), ינואר (1), פברואר (2)
  • Spring: מרץ (3), אפריל (4), מאי (5)
  • Summer: יוני (6), יולי (7), אוגוסט (8)
  • Autumn: ספטמבר (9), אוקטובר (10), נובמבר (11)

הדפיסו את שם העונה בדיוק כפי שהוא כתוב למעלה, באנגלית.

נסו בעצמכם

using System;

public class Program {
    public static void Main(string[] args) {
        int month = int.Parse(Console.ReadLine());
        string season = "";
        
        // כתבו את הקוד שלכם למטה
        
        
        Console.WriteLine(season);
    }
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר C# אונליין