Menu
CoddyTech

جملة Switch

جزء من قسم الأساسيات في رحلة C# على Coddy. الدرس 27 من 70.

تشبه عبارة switch عبارة if متعددة المسارات. فبدلًا من تقييم شرط واحد، تتحقق من قيمة متغير بمقارنتها بعدة حالات، وتنفذ الشيفرة المرتبطة بالحالة المطابقة.

إليك البنية الأساسية لعبارة switch:

switch (variable) {
    case value1:
        // الكود الذي يُنفَّذ إذا كانت variable تساوي value1
        break;
    case value2:
        // الكود الذي يُنفَّذ إذا كانت variable تساوي value2
        break;
    // ... حالات أخرى
    default:
        // الكود الذي يُنفَّذ إذا لم تتطابق أي حالة
        break;
}
  • تأتي الكلمة المفتاحية switch متبوعةً بالمتغير الذي تريد اختباره بين قوسين.
  • تمثل كل حالة 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 لشهر January، و2 لشهر February، وهكذا) ويطبع الفصل الذي ينتمي إليه. استخدم عبارة switch لتنفيذ المنطق.

الفصول والأشهر المقابلة لها هي:

  • Winter: December (12)، January (1)، February (2)
  • Spring: March (3)، April (4)، May (5)
  • Summer: June (6)، July (7)، August (8)
  • Autumn: September (9)، October (10)، November (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# عبر الإنترنت