هل يمكن لعبارة switch في لغة جافا التعامل مع الأعداد المركبة؟
Dec 30, 2025
ترك رسالة
مرحبًا يا من هناك! باعتباري موردًا للمفاتيح، فأنا غالبًا ما أكون متعمقًا في كل ما يتعلق بالمفاتيح. لكن اليوم، سأقوم بالالتفاف قليلاً عن حديثي المعتاد عن التبديل الصناعي وأغوص في سؤال برمجة Java: هل يمكن لبيان التبديل في Java التعامل مع الأعداد المركبة؟
أولاً، دعونا نلقي نظرة سريعة على ماهية عبارة التبديل في Java. بيان التبديل عبارة عن بيان فرعي متعدد الاتجاهات يوفر طريقة سهلة لإرسال التنفيذ إلى أجزاء مختلفة من التعليمات البرمجية الخاصة بك بناءً على قيمة التعبير. إنها أداة مفيدة عندما يكون لديك عدة قيم محتملة لمتغير وتريد تنفيذ إجراءات مختلفة اعتمادًا على القيمة التي يتطلبها.
فيما يلي مثال بسيط مع الأعداد الصحيحة:
عدد صحيح = 2؛ Switch (num) { case 1: System.out.println("الرقم هو 1"); استراحة؛ الحالة 2: System.out.println("الرقم هو 2"); استراحة؛ الافتراضي: System.out.println("الرقم ليس 1 ولا 2"); }
في Java، الأنواع التي يمكن لبيان التبديل التعامل معها محدودة جدًا. اعتبارًا من Java 17، يمكن لبيان التبديل التعامل مع الأنواع التالية:بايت,قصير,شار,كثافة العمليات، فئات المجمع المقابلة لها (بايت,قصير,شخصية,عدد صحيح)،خيط,التعدادأنواع، وملكنا(عندما يكون النوع المستدل من الأنواع المذكورة سابقاً).
الآن، دعونا نتحدث عن الأعداد المركبة. الرقم المركب هو رقم من النموذجأ + ثنائية، أينأوبهي أعداد حقيقية، وأناهي الوحدة التخيلية مع الخاصيةط²=- 1. في Java، لا يوجد نوع رقم مركب مدمج مثل الأعداد الصحيحة أو أرقام الفاصلة العائمة.


إذا أردنا تمثيل الأعداد المركبة في Java، فعادةً ما نقوم بإنشاء فئة خاصة بنا. فيما يلي مثال بسيط لفئة الأعداد المركبة:
مجمع الطبقة { خاص مزدوج حقيقي؛ صورة مزدوجة خاصة؛ مجمع عام (حقيقي مزدوج، صورة مزدوجة) { this.real = حقيقي؛ this.imag = image; } public double getReal() { return real; } public double getImag() { return image; } }
المشكلة الكبيرة في استخدام عبارة التبديل للأعداد المركبة هي أن عبارة التبديل تتطلب أن تكون القيم من نوع يمكن مقارنته باستخدام المساواة بطريقة محددة جدًا. عندما نستخدم عبارة التبديل، تستخدم Java طريقة فعالة جدًا لمقارنة القيم، وغالبًا ما تعتمد على التجزئة أو عمليات التحقق البسيطة من المساواة للأنواع البدائية.
الأعداد المركبة لا تتناسب مع هذا القالب. المقارنة بين رقمين معقدين للمساواة ليست بنفس سهولة مقارنة عددين صحيحين. للتحقق مما إذا كان عددان مركبان متساويان، علينا التحقق مما إذا كان جزأهما الحقيقي والتخيلي متساويين. ولا يدعم بيان التبديل الخاص بـ Java هذا النوع من التحقق من المساواة المخصص.
لنفترض أننا نحاول استخدام عبارة التبديل معمعقدفصل:
مجمع ج = مجمع جديد (1، 2)؛ // لن يتم تجميع هذا! Switch (c) { case new Complex(1, 2): System.out.println("الرقم المركب هو 1 + 2i"); استراحة؛ الافتراضي: System.out.println("إنه رقم مركب مختلف"); }
لن يتم تجميع هذا الرمز لأنمعقدالفئة ليست أحد الأنواع التي يمكن لبيان التبديل التعامل معها. لذلك، باختصار، لا يمكن لبيان التبديل في Java التعامل مباشرة مع الأرقام المعقدة.
ولكن لا تقلق! هناك طرق أخرى لتحقيق وظائف مماثلة. يمكننا استخدامهاإذا - آخرالبيانات. وإليك كيف يمكننا إعادة كتابة المثال أعلاه باستخدامإذا - آخر:
مجمع ج = مجمع جديد (1، 2)؛ if (c.getReal() == 1 && c.getImag() == 2) { System.out.println("الرقم المركب هو 1 + 2i"); } else { System.out.println("إنه رقم مركب مختلف"); }
الآن، أعود إلى وظيفتي اليومية كمورد تبديل. نحن نقدم مجموعة واسعة من المفاتيح عالية الجودة لمختلف التطبيقات الصناعية. على سبيل المثال، لديناD4A - 4501N D4A - 4510N مفتاح الحد. تُعرف المفاتيح الحدية هذه بموثوقيتها ودقتها، مما يجعلها مثالية للتطبيقات التي يكون فيها الاستشعار الدقيق للموضع أمرًا بالغ الأهمية.
منتج رائع آخر في الكتالوج الخاص بنا هو504222 مفتاح الأمان. تعد السلامة دائمًا أولوية قصوى في البيئات الصناعية، وقد تم تصميم هذا المفتاح لضمان سلامة المعدات والموظفين لديك.
وإذا كنت تبحث عن حل أمان أكثر تقدمًا، فاطلع على151166285 AZM161SK - 12/12RKA - 024 مفتاح الأمان. فهو يوفر ميزات ووظائف محسنة لتلبية متطلبات السلامة الأكثر تطلبًا.
إذا كنت في السوق لشراء مفاتيح، سواء كان ذلك لمشروع صغير أو لعملية صناعية واسعة النطاق، فنحن نحب أن نتحدث معك. يمكن لفريق الخبراء لدينا مساعدتك في العثور على المفتاح المناسب لاحتياجاتك المحددة. ما عليك سوى التواصل معنا وسنبدأ المحادثة حول كيف يمكننا مساعدتك في شراء المحول الخاص بك.
مراجع
- مواصفات لغة جافا
- وثائق أوراكل جافا
إرسال التحقيق





