أحيانًا تحتاج قيم مختلفة إلى نفس التصرف. في هذا البرنامج "sunny" و"cloudy" تطبعان الجملة نفسها، فتكررت ثلاثة أسطر بلا داعٍ:
const weather = "cloudy";
switch (weather) {
case "sunny":
console.log("Let's go shopping");
break;
case "cloudy":
console.log("Let's go shopping");
break;
case "rainy":
console.log("Let's stay home");
break;
}Let's go shopping
الحل: نكتب الحالات متتالية فوق بعضها، ثم التصرف مرة واحدة. في لعبة التصويب: الهدف 4 أو 8 يربح لعبة فيديو، و1 أو 7 يربح حلوى، وغير ذلك ملصق:
const target = 7;
switch (target) {
case 4:
case 8:
console.log("Get video game");
break;
case 1:
case 7:
console.log("Get candy assortment");
break;
default:
console.log("Get sticker");
break;
}Get candy assortment
case 1: ليس بعدها break، فيكمل التنفيذ إلى ما بعد case 7:. وكتبنا const بدل let لأن رقم الهدف لا يتغير بعد إصابته؛ const تعلن متغيرًا لا تتغير قيمته.التوزيع بالتناوب بباقي القسمة
نوزع الطلاب على 4 مجموعات بالترتيب: الأول في A والثاني في B والثالث في C والرابع في D، ثم الخامس في A من جديد. باقي القسمة على 4 يتكرر بنفس النمط، فتكفي 4 حالات لأي رقم:
| رقم الطالب | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|
| num % 4 | 1 | 2 | 3 | 0 | 1 | 2 | 3 | 0 |
| المجموعة | A | B | C | D | A | B | C | D |
const num = 6;
switch (num % 4) {
case 1:
console.log("Student " + num + " is in Group A");
break;
case 2:
console.log("Student " + num + " is in Group B");
break;
case 3:
console.log("Student " + num + " is in Group C");
break;
case 0:
console.log("Student " + num + " is in Group D");
break;
}Student 6 is in Group B
النفي بالعلامة !
العلامة ! قبل شرط تعكس نتيجته: true تصبح false، وfalse تصبح true. نضع الشرط بين قوسين ثم ! قبلهما، فيصبح المعنى «إذا لم يكن…»:
console.log(5 > 3);
console.log(!(5 > 3));
let seat = "sold out";
if (!(seat == "available")) {
console.log("It's sold out");
}true false It's sold out
!(seat == "available"). والنتيجة هنا مثل seat != "available".تدريبات
تغيّرت الجوائز: الهدف 8 أيضًا يطبع Video game Get، والهدف 7 أيضًا يطبع Candy Assortment Get. أضف case 8: وcase 7: بتجميعهما مع الحالات الموجودة، دون تكرار console.log. مع target = 7 يُطبع Candy Assortment Get.
const target = 7;
switch (target) {
case 4:
console.log("Video game Get");
break;
case 1:
console.log("Candy Assortment Get");
break;
default:
console.log("Sticker Get");
break;
}اضغط «تشغيل» لترى النتيجة. اكتب switch على weather مع تجميع الحالات: "sunny" و"cloudy" تطبعان Let's go shopping، و"rainy" تطبع Let's stay home.
const weather = "cloudy";
اضغط «تشغيل» لترى النتيجة. أكمل الفراغين لتفحص switch باقي قسمة num على 4، فيطبع Student 7 is in Group C.
const num = 7;
___ (___) {
case 0:
console.log("Student " + num + " is in Group D");
break;
case 1:
console.log("Student " + num + " is in Group A");
break;
case 2:
console.log("Student " + num + " is in Group B");
break;
case 3:
console.log("Student " + num + " is in Group C");
break;
}اضغط «تشغيل» لترى النتيجة. أعد كتابة الشرط في السطر الثاني ليصبح نفي الشرط seat == "available"، فيطبع It's sold out.
let seat = "sold out";
if (seat == "available") {
console.log("It's sold out");
}اضغط «تشغيل» لترى النتيجة. في مصر العطلة يوما الجمعة والسبت. اكتب switch على day مع تجميع الحالات: "Friday" و"Saturday" تطبعان Weekend، والأيام من "Sunday" إلى "Thursday" تطبع School day، وغير ذلك Not a day.
const day = "Tuesday";
اضغط «تشغيل» لترى النتيجة. المتغير month رقم الشهر (1 إلى 12). اطبع الفصل: 12 و1 و2 Winter، و3 و4 و5 Spring، و6 و7 و8 Summer، و9 و10 و11 Autumn.
const month = 4;
اضغط «تشغيل» لترى النتيجة. المتغير homework = "not done". باستخدام ! اطبع Finish your homework first إذا لم تكن قيمته "done".
let homework = "not done";
اضغط «تشغيل» لترى النتيجة. النقاط الرئيسية
- لتنفيذ نفس التصرف لقيم مختلفة اكتب
case 4: case 8:متتاليتين ثم التصرف مرة واحدة. switch (n % 4)يوزّع الأرقام على 4 مجموعات بالتناوب.!(شرط)تعكس النتيجة: true تصبح false والعكس.