freeCodeCamp/guide/arabic/certifications/javascript-algorithms-and-d.../basic-javascript/selecting-from-many-options.../index.md

5.2 KiB

title localeTitle
Selecting from Many Options with Switch Statements اختيار من العديد من الخيارات مع تبديل البيانات

اختيار من العديد من الخيارات مع تبديل البيانات

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

في ما يلي مثال pseudocode:

switch(num) { case value1: statement1; break; case value2: statement2; break; ... case valueN: statementN; break; }

أكثر قليلا من الشرح

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

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

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

شرح المشكلة:

اكتب عبارة التبديل التي تختبر val answer عن الشروط التالية:

  • 1 - "ألفا" ،
  • 2 - "beta" ،
  • 3 - "جاما" ،
  • 4 - "دلتا".

تلميح 1

تذكر أن قيم case يتم اختبارها بالمساواة الصارمة ( === ).

حاول حل المشكلة الآن!

تلميح 2

لا تشاهد "الشروط التالية" كقائمة مرتبة كما تبدو في العرض التوضيحي freeCodeCamp الأصلي ، ولكن كقيم وعبارات ، كما هو موضح هنا

حاول حل المشكلة الآن!

تنبيه المفسد!

هل أنت متأكد تماما ما تريد نظرة؟ ...

حل الرمز الأساسي

`function caseInSwitch(val) { var answer = ""; // Only change code below this line switch(val) { case 1: return "alpha"; break; case 2: return "beta"; break; case 3: return "gamma"; break; case 4: return "delta"; break; }

// Only change code above this line return answer; }

// Change this value to test caseInSwitch(1); `

شرح الشفرة

من الشائع تجاهل أن قيم case يتم اختبارها بالمساواة الصارمة مع أي حاجة للتعبير الآخر ، مثل: case === value

حل رمز بديل:

function caseInSwitch(val) { var answer = ""; // Only change code below this line switch (val){ case 1: answer="alpha"; break; case 2: answer="beta"; break; case 3: answer="gamma"; break; case 4: answer="delta"; break; } // Only change code above this line return answer; } // Change this value to test caseInSwitch(1);

تشغيل الكود في repl.it.

تفسير الشفرة

نظرًا لأن لديك بالفعل متغيرًا محددًا في بداية الدالة المسمى answer ، ويتم تعريفه على أنه آخر كشف للإرجاع ، فيمكنك تعيين قيم جديدة له لكل حالة وسيقوم بإرجاع الإجابة المتوقعة استنادًا إلى القيمة التي تمررها إلى الوظيفة.

مصادر

1 . وصف "switch" - مرجع JavaScript الخاص بـ MDN .