عبارة التبديل في Java

⚡ ملخص ذكي

عبارة التبديل في Java هي بنية شرطية تُنفذ فقط الجزء المطابق لقيمة إدخال معينة. تقارن هذه البنية عددًا صحيحًا أو حرفًا مع عدة تصنيفات للحالات، وتستخدم break للخروج و default للقيم غير المطابقة.

  • 🔀 تم تعريف المفتاح: عبارة شرطية تُنفذ فقط في الحالة التي تتطابق مع قيمة الإدخال.
  • 🏷️ ملصقات العلبة: تحدد كل حالة قيمة ونقطتين رأسيتين، متبوعة بعبارات للتنفيذ.
  • ⛔ استراحة: يخرج من كتلة التبديل بمجرد تنفيذ حالة مطابقة.
  • 🧯 الافتراضي: يتم تشغيله عندما لا تتطابق أي حالة مع قيمة الإدخال المعطاة.
  • ⚡ لماذا استخدامه: أكثر وضوحًا وسرعة من عبارات if…else المتداخلة في العديد من الحالات؛ تقبل الأعداد الصحيحة والأحرف و(Java (8+) أوتار.

عبارة التبديل في Java

تبديل العبارات في Java

نحن جميعًا نستخدم المفاتيح بانتظام في حياتنا. نعم، أنا أتحدث عن المفاتيح الكهربائية التي نستخدمها للإضاءة والمراوح. وكما ترى في الصورة أدناه، فإن كل مفتاح مُخصص للعمل مع جهاز كهربائي معين. على سبيل المثال، في الصورة، المفتاح الأول للمروحة، والمفتاح التالي للإضاءة وهكذا. وبالتالي، يمكننا أن نرى أن كل مفتاح يمكنه تنشيط/تعطيل عنصر واحد فقط.

Java تبديل حالة البرنامج التعليمي

ما هي حالة التبديل في Java?

وبالمثل، قم بالتبديل Java هو نوع من العبارات الشرطية التي تنشط فقط الشرط المطابق من المدخلات المقدمة. دعنا نفكر في مثال برنامج حيث يقدم المستخدم المدخلات كقيمة عددية (رقم واحد فقط في هذا المثال)، ويجب أن يكون الناتج هو عدد الكلمات. متغير صحيح iSwitch، هو المدخل لكي يعمل المحول.

ثم تُكتب الخيارات المتاحة المختلفة (أو الحالات) على النحو التالي: حالة بالإضافة إلى نقطتين رأسيتين ":"

سيكون لدى هذا بعد ذلك البيان الذي سيتم تنفيذه في حالة تطابق الحالة والمدخلات إلى المفتاح.

Java مثال حالة التبديل

class SwitchBoard{
 public static void main(String args[]){
   int iSwitch=4;
   switch(iSwitch){
     case 0:
     System.out.println("ZERO");
     break;

     case 1:
     System.out.println("ONE");
     break;

     case 2:
     System.out.println("TWO");
     break;

     case 3:
     System.out.println("THREE");
     break;

     case 4:
     System.out.println("FOUR");
     break;

     default:
     System.out.println("Not in the list");
     break;
 }
}
}

الناتج المتوقع:

FOUR

الآن ما هي هاتان الكلمتان المتقطعتان والكذب الافتراضي هناك؟

  • "الكسر" الأول - سوف يخرج ببساطة من كتلة التبديل بمجرد استيفاء الشرط.
  • "افتراضي" - سيتم تنفيذ هذا في حالة عدم تطابق أي من الشروط مع الإدخال المحدد.

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

ماذا لو لم تقدم استراحة؟

في حالة عدم توفير الفاصل، سيتم تنفيذ شروط المطابقة بالإضافة إلى الشرط الافتراضي. سيخرج منطقك عن السيطرة إذا حدث ذلك. سأترك الأمر للمستخدمين للتجربة دون استخدام الفاصل.

Java بيان التبديل

  • كمنطق برمجة قياسي، يمكن تحقيقه ببساطة عن طريق استخدام شروط if…else، ولكن بعد ذلك لن يتم تحسينه لممارسة البرمجة الجيدة ولن يبدو الكود قابلاً للقراءة.
  • في البرامج التي تتضمن حالات أكثر تعقيدًا، لن تكون السيناريوهات بهذه البساطة، وستتطلب استدعاء عدة دوال. تحلّ عبارة switch هذه المشكلة، وتتجنب استخدام عبارات if…else المتداخلة. كما يُنصح، عند استخدام if…else، بوضع الشرط الأكثر ترجيحًا في البداية، ثم المتابعة بشكل متداخل.
  • أثبتت بعض اختبارات قياس الأداء أنه في حالة وجود عدد كبير من التكرارات في لغة جافا، يكون التبديل أسرع مقارنة بعبارات if…else.

نقاط لملاحظة

  • لا يوجد حد لعدد حالات جافا التي يمكنك الحصول عليها.
  • يمكن لـ Switch java أن يأخذ المدخلات فقط كأعداد صحيحة أو أحرف.
  • أحدث إصدار من Javaيقدم الإصدار 8 أيضًا الدعم الذي طال انتظاره لبيان سلاسل التبديل في Java.

والآن قم بوصل لوحة المفاتيح الخاصة بك!!

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

A Java تقبل عبارة switch أنواع البيانات byte و short و int و char، بالإضافة إلى فئات التغليف الخاصة بها، و enums، و (بما أن Java 7) السلاسل النصية. يجب أن تكون تسميات الحالة تعبيرات ثابتة متوافقة مع نوع متغير التبديل.

بدون استخدام أمر break، يستمر التنفيذ في تنفيذ الحالة المطابقة بالإضافة إلى جميع الحالات اللاحقة، بما في ذلك الحالة الافتراضية، حتى يتم استخدام أمر break أو نهاية الكتلة. قد يكون هذا مقصودًا في بعض الأحيان، ولكنه غالبًا ما يكون خطأً برمجيًا.

نعم. حيث Java 7. تدعم عبارات switch قيم السلاسل النصية. تقارن عبارة switch السلسلة النصية باستخدام دالة equals()، لذا يجب أن تكون تسميات الأحرف دقيقة وحساسة لحالة الأحرف.

يمكن للذكاء الاصطناعي تحليل سلاسل if-else الطويلة، وتحديد متغير واحد تتم مقارنته، وإعادة هيكلتها إلى عبارة switch أكثر وضوحًا مع تسميات الحالة المناسبة وعبارات break، مما يحسن من قابلية القراءة والأداء.

نعم. يمكن لأدوات التحليل المدعومة بالذكاء الاصطناعي أن تحدد الحالات التي تفتقر إلى فاصل وقد تفشل عن غير قصد، ثم تقترح إضافة عبارات فاصلة أو تعليق صريح للفشل لتوضيح النية.

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