English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
switch هي تعليمات شرطية مثل if ... else ...، ولكنها تسمح باختبار متساوية القيمة للمعلمة بناءً على قائمة من القيم.
يمكن استخدام switch لاختيار كتلة التعليمات التي يجب تنفيذها من عدة كتل تعليمات. هذا هو الحل الأمثل لمجموعة من تعليمات if...else
تعليمات switch مثل هذا:
switch (expression) { case value1: // تنفيذ التعليمات // يتم تطابق نتيجة التعبير مع value1 تحطم; case value2: // تنفيذ التعليمات // يتم تطابق نتيجة التعبير مع value2 تحطم; ... case valueN: // تنفيذ التعليمات // يتم تطابق نتيجة التعبير مع value N تحطم; default: // عند عدم تنفيذ أي مما يلي // تنفيذ كتلة التعليمات هنا }
حسب منطق كتلة التعليمات أعلاه، هذا هو ترتيب الأحداث التي ستحدث:
يتم حساب تعبير switch مرة واحدة
يتم مقارنة قيمة التعبير مع كل قيمة حالة
إذا كانت هناك تطابق، يتم تنفيذ كتلة التعليمات المطلوبة
إذا لم تتطابق أي حالة، يتم تنفيذ كتلة التعليمات الافتراضية
في هذا المثال، يتم استخدام رموز أيام الأسبوع لتحديد أيام الأسبوع:
var day; switch (new Date().getDay()) { case 0: day = "Sunday"; تحطم; case 1: day = "Monday"; تحطم; case 2: day = "Tuesday"; تحطم; case 3: day = "Wednesday"; تحطم; case 4: day = "Thursday"; تحطم; case 5: day = "Friday"; تحطم; case 6: day = "Saturday"; تحطم; default: day = "Undefined Day"; }اختبار لرؤية‹/›
كلمة المفتاح break المرتبطة بكل علامة case تضمن أن يخرج البرنامج من التبديل بمجرد تنفيذ التعليمات التي تتطابق معها، ويستمر في تنفيذ التعليمات بعد التبديل. إذا تم تمرير skip break، فإن البرنامج يستمر في تنفيذ التعليمات التالية لقوس switch.
إذا نسيت الراحة، فإن النص سينطلق من حالة التوافق، ثم ينفذ حالة التوافق:
var num = Number(document.querySelector("input").value); var text; switch (num) { case 1: text = "رقمك الذي أدخلته هو 1"; case 2: text = "رقمك الذي أدخلته هو 2"; case 3: text = "رقمك الذي أدخلته هو 3"; case 4: text = "رقمك الذي أدخلته هو 4"; case 5: text = "رقمك الذي أدخلته هو 5"; default: text = "تنفيذ التعليمة التالية"; }اختبار لرؤية‹/›
ليس من الضروري إيقاف تشغيل حالة النهاية في قوس switch (أي default). لأن كتلة الأوامر تنهي هنا (تنتهي).
إذا لم يتم العثور على case مطابق، فإن كلمة المفتاح default تحدد بعض الكود لتشغيله.
يمكن أن يكون هناك جملة افتراضية واحدة فقط في switch. على الرغم من أن هذا غير إلزامي، إلا أن من المستحسن استخدامها لأنها يمكن أن تتعامل مع حالات غير متوقعة.
في بعض الأحيان، قد ترغب في استخدام نفس الكود في حالات مختلفة، أو استخدام كود عام.
هذا مثال على جملة switch ي�行ها نفس العملية لأربعة قيم مختلفة:
var num = Number(document.querySelector("input").value); var text; switch (num) { case 1: case 2: case 3: case 4: text = "رقمك بين 1 و4"; تحطم; case 5: case 6: case 7: case 8: text = "رقمك بين 5 و8"; تحطم; default: text = "ت�行 الجملة الافتراضية"; }اختبار لرؤية‹/›
إذا تطابق أكثر من case مع القيمة، يتم اختيار case الأول.
إذا لم يتم العثور على case مطابق، فإن البرنامج سيستمر في استخدام case الافتراضي.
إذا لم يتم العثور على علامة التبويب الافتراضية، فإن البرنامج سيستمر في تنفيذ الجملة التالية.