انتقل إلى محتوى الدرس

JavaScript switch vs if-else لماذا تتفوق switch عن if-else في جافا سكريبت

ستتعلم في هذا الدرس عبارة switch الشرطية وطريقة كتابتها Switch Syntax وما الفرق بينها وبين ال If-else Condation ومتي تستخدمهم switch وستتعلم أيضاً الكُتل البرمجية داخل switch وعلاقتها ب expression في لغة جافا سكريبت.

1 صفوف تعليمية
جافا سكريبت
6,752 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

تعتمد النظرية السائدة حول استخدام if-else مقابل switch عدد الشروط كلما كان عدد الشروط أكبر يفضل أستخدام switch لأنها منظمة اكثر ومقروءة اكثر ولكن ليس مشكلة أن نستخدم if-else.


لماذا نستخدم ال swich وليس if , else ؟

  • Expression هو يميز switch في كتابة قيمة فقط للتحقق بينما if و else تعتمد علي شرط كامل وليس قيمة.
  • تتميز Switch بسرعة التنقل بين كل حالة case وحالة case بينما العكس في if و else ستقوم لغة البرمجة بفحص جميع الشروط اما في ال swich تذهب مباشرة علي ال case التي تساوي ال Expression.
  • الوضوح وسهولة القراءة Clarity and readability تتفوق swich منظمة في طريقة كتابتها تسهل عملية القراءة والتعديل علي الحالات بخلاف ال if وال else لها اقواس كثيرة.
  • في عملية الأصلاح والتعديل تتفوق قاعدة switch عن قاعدة if لأن switch  سوف تعدل Expression مره واحدة بينما في if سوف نقوم بتعديل جميع الحالات علي حسب عدد if.
  • في جملة if يمكن ان يكون expression من النوع (integer او character او pointer او float ) بينما في ال switch يمكن expression ان يكون اي نوع من هذى الأنواع.


unclarity and unreadability

غير واضحة وغير مقروءة لقاعدة if في لغة جافا سكريبت

HTML
if (color == "red"){
    /* do something */
} else if (color == "blue"){
    /* do something */
} else if (color == "brown"){
    /* do something */
} else if (color == "black"){
    /* do something */
} else {
    /* do something */
}

Clarity and readability

الوضوح وسهولة القراءة لقاعدة switch في لغة جافا سكريبت

HTML
switch (color){
    case "red":
        /* do something */
        break;

    case "blue":
        /* do something */
        break;

    case "brown":
        /* do something */
        break;

    case "black":
        /* do something */
        break;

    default:
        /* do something */
}