حدد بيان الحالة في VB.Net مع الأمثلة

⚡ ملخص ذكي

تُعدّ عبارة Select Case في VB.Net عبارة شرطية تختبر تعبيرًا واحدًا مقابل قائمة من القيم وتُشغّل الكتلة المطابقة، مما يُعطي تفرعًا أنظف وأكثر قابلية للقراءة من سلاسل If Then ElseIf الطويلة.

  • 🔍 الغرض: اختبر تعبيرًا واحدًا مقابل العديد من القيم وقم بتشغيل الحالة المطابقة.
  • 🧩 بناء الجملة: يبدأ كل فرع بـ Case؛ ويمتد المقطع إلى End Select.
  • 🔢 مباريات متعددة: تقبل حالة واحدة قوائم الفواصل، ونطاقات To، ومقارنات Is.
  • 🧩 في حالة أخرى: يتم تنفيذ عبارة Case Else فقط عندما لا تتطابق أي حالة أخرى مع القيمة.
  • 🔤 حساسية القضية: تقوم الدالتان ToLower و ToUpper بتطبيع النص بحيث تتجاهل عملية المطابقة حالة الأحرف.
  • 🤖 مساعدة الذكاء الاصطناعي: GitHub Copilot و IntelliCode أكمل مربعات تحديد الحالة أثناء الكتابة.

عبارة SELECT CASE في VB.Net

ما هو تحديد الحالة في VB.Net؟

حدد الحالة عبارة عن عبارة شرطية تساعدك على اختبار متغير للمساواة مقابل مجموعة من القيم. تتم الإشارة إلى كل قيمة كحالة، ويجب التحقق من المتغير الذي يتم تشغيله لجميع الحالات المحددة.

توفر لك عبارة Select Case طريقة سهلة لاختبار محتويات المتغير. ومع ذلك، فهو مناسب فقط للاستخدام عندما يكون للمتغير المعني عدد محدود من الخيارات.

بناء جملة بيان الحالة المحدد في VB.Net

يتم تعريف عبارة Select Case في VB.Net باستخدام الصيغة التالية:

Select [ Case ] your_expression
   [ Case expression_list
      [ statement(s) ] ]
   [ Case Else
      [ else statement(s) ] ]
End Select

دعونا نصف المعلمات المستخدمة في بناء الجملة:

  • your_expression: يشير هذا إلى تعبير يتم تقييمه إلى أحد العناصر الأولية أنواع البيانات مدعوم في Microsoft VB.Net.
  • Expression_list: عبارات التعبير التي تشير إلى قيم المطابقة للتعبير. في حالة الجمل المتعددة، افصل بينها باستخدام الفاصلة (،).
  • صياغات): العبارات التي تتبع الحالة ويتم تنفيذها بعد أن يطابق تعبير التحديد أي جملة في Expression_list.
  • تصريحات أخرى: العبارات التي تتبع حالة أخرى ويتم تشغيلها بمجرد فشل تعبير التحديد في مطابقة أي من الجمل الموجودة في Expression_list لأي عبارة حالة.

VB.Net حدد أمثلة على برنامج بيان الحالة

لنستخدم مثالاً لتوضيح كيفية استخدام عبارة Select Case في VB.Net:

الخطوة 1) أولاً، قم بإنشاء تطبيق وحدة تحكم جديد.

الخطوة 2) استخدم الكود التالي:

Module Module1
    Sub Main()
        Dim name As String
        name = "Guru99"
        Select Case name

            Case "John"
                Console.WriteLine("Hello John")

            Case "Guru99"
                Console.WriteLine("Hello Guru99")

            Case "Alice"
                Console.WriteLine("Hello Alice")

            Case "Joel"
                Console.WriteLine("Hello Joel")

            Case Else
                Console.WriteLine("unknown name")

        End Select
        Console.WriteLine("VB.NET is easy!")
        Console.ReadKey()
    End Sub
End Module

الخطوة 3) انقر على زر البدء من الشريط العلوي لتشغيل البرنامج، وسيعطيك النتيجة التالية:

برنامج VB.Net Select Case يُخرج رسالة "مرحباً" Guru99

فيما يلي لقطة شاشة للكود الذي استخدمناه:

مثال على كود VB.Net Select Case معروض في Visual Studio

شرح Code:

  1. إنشاء وحدة تسمى Module1.
  2. بداية الإجراء الفرعي الرئيسي.
  3. إنشاء متغير سلسلة اسمه name.
  4. تحديد قيمة لـ Guru99 إلى اسم المتغير.
  5. سيتم استخدام قيمة اسم المتغير لإجراء مقارنات مع عبارات الحالة المختلفة للعثور على التطابق.
  6. إذا كانت قيمة اسم المتغير هي John.
  7. النص المطلوب طباعته على وحدة التحكم إذا كانت الحالة المذكورة أعلاه صحيحة/متطابقة.
  8. إذا كانت قيمة اسم المتغير هي Guru99.
  9. النص المطلوب طباعته على وحدة التحكم إذا كانت الحالة المذكورة أعلاه صحيحة/متطابقة.
  10. إذا كانت قيمة اسم المتغير هي Alice.
  11. النص المطلوب طباعته على وحدة التحكم إذا كانت الحالة المذكورة أعلاه صحيحة/متطابقة.
  12. إذا كانت قيمة اسم المتغير هي Joel.
  13. النص المطلوب طباعته على وحدة التحكم إذا كانت الحالة المذكورة أعلاه صحيحة/متطابقة.
  14. إذا لم تكن أي من عبارات الحالة المذكورة أعلاه صحيحة/متطابقة.
  15. النص المطلوب طباعته على وحدة التحكم إذا كانت الحالة المذكورة أعلاه صحيحة، أي أنه لا توجد عبارة حالة متطابقة.
  16. نهاية عبارة التحديد.
  17. سيقوم هذا البيان بطباعة بعض النص على الشاشة بغض النظر عما إذا كان بيان الحالة مطابقًا أم لا. سيتم تنفيذه دائمًا.
  18. قم بإيقاف نافذة وحدة التحكم مؤقتًا لفترة من الوقت في انتظار أن يتخذ المستخدم إجراءً لإغلاقها.
  19. نهاية الإجراء الفرعي الرئيسي.
  20. نهاية الوحدة.

مثال 2

يمكنك أيضًا السماح للمستخدم بكتابة الاسم، ثم اتخاذ قرارك بناءً على هذا الإدخال.

الخطوة 1) إنشاء تطبيق وحدة تحكم جديد.

الخطوة 2) استخدم الكود التالي:

Module Module1
    Sub Main()
        Console.Write("Enter your name: ")
        Dim name As String = Console.ReadLine()
        Select Case name

            Case "John"
                Console.WriteLine("Hello John")

            Case "Guru99"
                Console.WriteLine("Hello Guru99")

            Case "Alice"
                Console.WriteLine("Hello Alice")

            Case "Joel"
                Console.WriteLine("Hello Joel")

            Case Else
                Console.WriteLine("unknown name")

        End Select
        Console.WriteLine("VB.NET is easy!")
        Console.ReadKey()
    End Sub
End Module

الخطوة 3) انقر فوق زر البدء من الشريط العلوي لتنفيذه. يجب أن يؤدي ذلك إلى إرجاع ما يلي:

في VB.Net، ستظهر لك نافذة منبثقة في وحدة التحكم تطلب منك إدخال اسم.

الخطوة 4) اكتب الاسم Guruأدخل الرقم 99 واضغط على مفتاح الإدخال. ستظهر لك النتيجة التالية:

مخرجات VB.Net Select Case بعد إدخال المستخدم Guru99

فيما يلي لقطة شاشة للكود:

قراءة كود Select Case في VB.Net باستخدام Console.ReadLine

شرح Code:

  1. إنشاء وحدة تسمى Module1.
  2. بداية الإجراء الفرعي الرئيسي.
  3. طباعة بعض النصوص على وحدة التحكم لإرشاد المستخدم إلى إدخال اسمه.
  4. إنشاء متغير سلسلة باسم name ومطالبة المستخدم بإدخال قيمة لهذا المتغير على وحدة التحكم.
  5. سيتم استخدام قيمة اسم المتغير لإجراء مقارنات مع عبارات الحالة المختلفة للعثور على التطابق.
  6. إذا كانت قيمة اسم المتغير هي John.
  7. النص المطلوب طباعته على وحدة التحكم إذا كانت الحالة المذكورة أعلاه صحيحة/متطابقة.
  8. إذا كانت قيمة اسم المتغير هي Guru99.
  9. النص المطلوب طباعته على وحدة التحكم إذا كانت الحالة المذكورة أعلاه صحيحة/متطابقة.
  10. إذا كانت قيمة اسم المتغير هي Alice.
  11. النص المطلوب طباعته على وحدة التحكم إذا كانت الحالة المذكورة أعلاه صحيحة/متطابقة.
  12. إذا كانت قيمة اسم المتغير هي Joel.
  13. النص المطلوب طباعته على وحدة التحكم إذا كانت الحالة المذكورة أعلاه صحيحة/متطابقة.
  14. إذا لم تكن أي من عبارات الحالة المذكورة أعلاه صحيحة/متطابقة.
  15. النص المطلوب طباعته على وحدة التحكم إذا كانت الحالة المذكورة أعلاه صحيحة، أي أنه لا توجد عبارة حالة متطابقة.
  16. نهاية عبارة التحديد.
  17. سيقوم هذا البيان بطباعة بعض النص على الشاشة بغض النظر عما إذا كان بيان الحالة مطابقًا أم لا. سيتم تنفيذه دائمًا.
  18. قم بإيقاف نافذة وحدة التحكم مؤقتًا لفترة من الوقت في انتظار أن يتخذ المستخدم إجراءً لإغلاقها.
  19. نهاية الإجراء الفرعي الرئيسي.
  20. نهاية الوحدة.

وظائف ToLower() وToUpper() في VB.Net

تُعتبر عبارة Select Case حساسة لحالة الأحرف. وهذا يعني أنها ستتعامل مع guru99 على أنها مختلفة عن Guru99. ومع ذلك، يمكننا استخدام الدالتين ToLower() و ToUpper() لمعالجة مشكلة حالة مع هذه العبارة.

مثال على ToLower() وToUpper() في VB.Net

فيما يلي مثال على دالتي ToLower() و ToUpper() في VB.Net:

الخطوة 1) إنشاء تطبيق وحدة تحكم جديد.

الخطوة 2) استخدم الكود التالي:

Module Module1
    Sub Main()
        Console.Write("Enter your name: ")
        Dim name As String = Console.ReadLine()
        Select Case name.ToLower()
		
            Case "john." 
                Console.WriteLine("Hello John")

            Case "guru99." 
                Console.WriteLine("Hello Guru99")

            Case "alice." 
                Console.WriteLine("Hello Alice")

            Case "joel." 
                Console.WriteLine("Hello Joel")

            Case Else
                Console.WriteLine("unknown name")

        End Select
        Console.WriteLine("VB.NET is easy!")
        Console.ReadKey()
    End Sub
End Module

الخطوة 3) انقر فوق زر البدء في الشريط العلوي لتشغيل الكود. يجب أن تحصل على النتيجة التالية:

مخرجات وحدة التحكم لدالة ToLower في VB.Net لحالة التحديد

الخطوة 4) اكتب الاسم Guruاكتب 99 (حرف G كبير) ثم اضغط على مفتاح الإدخال (Enter) في لوحة المفاتيح. ستظهر لك النتيجة التالية:

في VB.Net، اختر حالة الأحرف مع دالة ToLower لمطابقة الأحرف الكبيرة Guruإدخال شنومك

فيما يلي لقطة شاشة للكود:

مثال على كود VB.Net لـ ToLower و ToUpper Select Case

شرح Code:

Code السطر 5: سيتم استخدام قيمة اسم المتغير لإجراء مقارنات مع عبارات Case المختلفة للعثور على تطابق. ستضمن الدالة ToLower() تحويل أي اسم يكتبه المستخدم إلى أحرف صغيرة قبل تقييم عبارات Case. هذا يعني أنه إذا كتب المستخدم Guruإذا كتب المستخدم 99، فسيتم تحويله فورًا إلى guru99، ثم يتم تقييم عبارات الحالة. أما إذا كتب John، فسيتم تحويله فورًا إلى john قبل تقييم عبارات الحالة.

بقية الكود نفس ما ورد أعلاه.

الأسئلة الشائعة

قم بإدراج القيم باستخدام الفواصل (الحالة 6، 7، 8)، أو قم بإعطاء نطاق باستخدام الحالة من 1 إلى 10، أو استخدم الحالة أكبر من 5.

تختبر عبارة Select Case تعبيرًا واحدًا مقابل عدة قيم، وتُقرأ بشكل واضح. استخدم عبارة If Then ElseIf للشروط المنطقية غير المترابطة أو المعقدة.

لا. يتم تنفيذ الحالة الأولى المطابقة فقط، ثم يتجاوز التحكم عبارة End Select. لا يحتاج VB.Net إلى عبارة Break لمنع الانتقال إلى الحالة التالية.

يُعدّ خيار "إلا" الفرع الافتراضي، ويتم تنفيذه فقط عندما لا تتطابق أي حالة أخرى. وهو اختياري ولكنه يتعامل بأمان مع القيم غير المتوقعة.

يجب أن يكون التعبير ابتدائيًا نوع البيانات مثل Boolean و Char و Date و Integer و Long Double، عشري، كائن، أو سلسلة نصية.

نعم. ضع عبارة Select Case كاملة داخل كتلة Case ضمن كتلة خارجية. يتم تشغيل الاختبار الداخلي فقط بعد تطابق الكتلة الخارجية، على الرغم من أن التداخل العميق يؤثر سلبًا على سهولة القراءة.

نعم. مساعد الطيار جيثب يحوّل تعليقًا مكتوبًا بلغة إنجليزية بسيطة إلى كتلة Select Case كاملة. Revانظر إلى أن الحالات تغطي كل قيمة متوقعة.

نعم. يجمع Visual Studio 2026 بين Copilot و ذكاءCode لإكمال الحالات بشكل كامل ومراعٍ للسياق.

تلخيص هذه التدوينة بـ: