يمكنني استعمال أكبر من وأصغر من في جملة if لكن هل يمكن استعمالها في جملة Switch ؟
هل يمكن استعمال أكبر من وأصغر من مع Switch في Java ؟
نعم يجوز استخدام if الشرطية داخل كل حالة case في اداة switch (اعني كجزء من التعليمات في الحالة) بدون أي مشكلة. اما اذا كنت تقصد استخدام الشرط داخل جملة الحالة مثلا case x < 20 فهذا لا يجوز ويصبح الخيار الانسب هو استخدام اسلوب if else if.
فعلا أنا أقصد استعمال المعاملات بعد case لكن ما سبب عدم استعمالها، في VB.NET هناك Select Case ويمكن استعمال المعاملات بداخلها فهل هناك حكمة من عدم إتاحة وضعها داخل Switch في JAVA ؟
الحكمة يا صديقي ان switch و if مفهومان مختلفان فالأول يختص بمطابقة قيمة او قيم معينة او ما عداها ثم يتصرف بناء على ذلك , بينما الثانية تقوم بمطابقة شرط او ما عداه. واذا قرر الناس يوما ما جعل switch تتقبل الشروط فتصبح نسخة من if مع اختلاف الكلمة المفتاحية فقط. في تصميم اللغة يجب ان تكون حذرا حتى لا تصبح اللغة ضعيفة البنية ومتخبطة ويجب ان يكون هنالك سبب حقيقي لاضافة شئ ما او لجعله يعمل بطريقة معينة.
اتفق معك ان VB.NET تقوم بتقبل الشروط او expressions في switch بالاضافة الى مجموعة اخرى من الاضافات مثل الكلمة المفتاحية to لجعل القيم تتطابق ضمن نطاق Range معين. لكن كمبرمج لست بحاجة الى كل هذا الترف الزائد , كمبرمج سأستخدم if في الوقت المناسب وswitch في الوقت المناسب ولن ينقص مني شئ أو يضيع وقتي !
التعليقات