Menu
CoddyTech
flag Ar iconالعربيةdown icon

جملة 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# عبر الإنترنت