Files

124 lines
5.2 KiB
Markdown
Raw Normal View History

---
title: Selecting from Many Options with Switch Statements
localeTitle: اختيار من العديد من الخيارات مع تبديل البيانات
---
## اختيار من العديد من الخيارات مع تبديل البيانات
_إذا كان لديك العديد من الخيارات للاختيار من بينها ، فاستخدم عبارة `switch` . يختبر بيان `switch` قيمة ويمكن أن يحتوي على العديد من عبارات `case` التي تحدد القيم المحتملة المختلفة. يتم تنفيذ البيانات من قيمة `case` الأولى المتطابقة حتى تتم مواجهة `break` ._
_في ما يلي مثال pseudocode:_
` switch(num) {
case value1:
statement1;
break;
case value2:
statement2;
break;
...
case valueN:
statementN;
break;
}
`
### أكثر قليلا من الشرح
يقوم بيان التبديل أولاً بتقييم التعبير الخاص به. ثم يبحث عن جملة `case` الأولى التي يتم تقييم التعبير لها بنفس القيمة الناتجة عن تعبير الإدخال (باستخدام [المقارنة الصارمة](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators) ، ( `===` ) وينقل التحكم إلى ذلك البند ، تنفيذ العبارات المرتبطة. (إذا كانت هناك حالات متعددة تتطابق القيمة المقدمة ، يتم تحديد الحالة الأولى المطابقة ، حتى إذا كانت الحالات لا تساوي بعضها البعض.)
إذا لم يتم العثور على فقرة `case` مطابقة ، يبحث البرنامج عن جملة `default` اختيارية ، وإذا تم العثور عليه ، ينقل التحكّم إلى هذا البند ، وينفذ البيانات المرتبطة. إذا لم يتم العثور على جملة `default` ، يتابع البرنامج التنفيذ في البيان التالي لنهاية `switch` . حسب الاصطلاح ، فإن الجملة `default` هي الجملة الأخيرة ، ولكنها لا تحتاج إلى أن تكون كذلك.
يضمن بيان `break` الاختياري المرتبط بكل ملصق حالة أن البرنامج يخرج من المفتاح بمجرد تنفيذ البيان المطابق ومواصلة التنفيذ في البيان التالي للتبديل. إذا تم حذف `break` ، يستمر البرنامج في التنفيذ في العبارة التالية في عبارة `switch` . [1](#cite1)
### شرح المشكلة:
_اكتب عبارة التبديل التي تختبر `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.](https://repl.it/@AdrianSkar/Basic-JS-Switch-statements)
### تفسير الشفرة
نظرًا لأن لديك بالفعل متغيرًا محددًا في بداية الدالة المسمى `answer` ، ويتم تعريفه على أنه آخر كشف للإرجاع ، فيمكنك تعيين قيم جديدة له لكل حالة وسيقوم بإرجاع الإجابة المتوقعة استنادًا إلى القيمة التي تمررها إلى الوظيفة.
### مصادر
1 . [وصف "switch" - _مرجع JavaScript الخاص بـ MDN_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch#Description) .