JavaScript / اتخاذ القرار

سلاسل else if

اختر بين أكثر من حالتين بسلسلة if و else if و else، ورتّب الشروط ليُنفَّذ الصحيح منها.

if-else تختار بين طريقين فقط. لكن كثيرًا من القرارات لها أكثر من احتمال: الجائزة الأولى، أو الثانية، أو الثالثة، أو جائزة ترضية. هنا نستخدم else if لنضيف شرطًا جديدًا يُختبر فقط إذا لم يتحقّق ما قبله.

JavaScript
let num = 2;
if (num == 1) {
    console.log("New bicycle");
} else if (num == 2) {
    console.log("Pair of tickets to the aquarium");
} else if (num == 3) {
    console.log("10 bags of potato chips");
} else {
    console.log("Stickers");
}
وحدة التحكم
Pair of tickets to the aquarium

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

JavaScript
let people = 3;
if (people == 2) {
    console.log("10% off");
} else if (people >= 3) {
    console.log("20% off");
} else {
    console.log("retail price");
}
وحدة التحكم
20% off
لأن أول شرط صحيح فقط هو الذي يُنفَّذ، فترتيب الشروط مهم. هنا القيمة 0 تحقّق الشروط الثلاثة، لكن يُطبع السطر الأول فقط، ولن نصل أبدًا إلى الشرطين الآخرين:
JavaScript
let egg = 0;
if (egg <= 10) {
    console.log("Less than or equal to 10");
} else if (egg <= 5) {
    console.log("Less than or equal to 5");
} else if (egg <= 3) {
    console.log("Less than or equal to 3");
}
وحدة التحكم
Less than or equal to 10

القاعدة: ابدأ بالشرط الأضيق. في تقدير الدرجات نبدأ بأعلى حد، فكل else if تعرف أن الدرجة أقل من الحدود التي قبلها:

JavaScript
let score = 77;
if (score >= 90) {
    console.log("Excellent");
} else if (score >= 75) {
    console.log("Very good");
} else if (score >= 50) {
    console.log("Pass");
} else {
    console.log("Fail");
}
وحدة التحكم
Very good

ويمكن استخدام && و|| داخل أي شرط في السلسلة:

JavaScript
let numberOfPeople = 1;
let fee = 3500;
if (numberOfPeople >= 2 && fee >= 3000) {
    console.log("Free mug");
} else if (numberOfPeople >= 2 || fee >= 3000) {
    console.log("Complimentary cookie");
}
وحدة التحكم
Complimentary cookie
else if كلمتان بينهما مسافة (elseif خطأ)، ولكل else if شرط بين قوسين. أما else الأخيرة فبلا شرط، ولا يأتي بعدها else if.

تدريبات

1عدّل البرنامجتدريب المنهج

أضف إلى السلسلة شرطًا ثالثًا: وإلا، إذا كانت قيمة num تساوي 3 اطبع 10 bags of potato chips.

JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
let num = 3;
if (num == 1) {
    console.log("New bicycle");
} else if (num == 2) {
    console.log("Pair of tickets to the aquarium");
}
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
2أكمل الفراغتدريب المنهج

أكمل الفراغ: إذا لم تكن قيمة egg تساوي 0، وكانت أصغر من أو تساوي 3، يُطبع I'm almost out of eggs.

JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
let egg = 2;
if (egg == 0) {
    console.log("I have to go buy more eggs");
} ___ {
    console.log("I'm almost out of eggs");
} else {
    console.log("I still have eggs");
}
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
3أكمل الفراغتدريب المنهج

أكمل الفراغات: إذا كانت num أصغر من أو تساوي 3 يُطبع A، وإلا إذا كانت أكبر من أو تساوي 6 يُطبع B، وإلا يُطبع C.

JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
let num = 4;
if (___) {
    console.log("A");
} else if (___) {
    console.log("B");
} ___ {
    console.log("C");
}
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
4اكتب البرنامجتدريب المنهج

أعلن المتغير test وأسند له 77. إذا كان يساوي 100 اطبع Perfect score، وإلا إذا كان أكبر من أو يساوي 75 اطبع Pass، وإلا اطبع Make-up exam.

JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
5عدّل البرنامجتدريب المنهج

البرنامج لا يطبع شيئًا. أضف else if: إذا كان عدد الأشخاص 2 أو أكثر أو الرسوم 3000 أو أكثر اطبع Complimentary cookie.

JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
let numberOfPeople = 1;
let fee = 3500;
if (numberOfPeople >= 2 && fee >= 3000) {
    console.log("Free mug");
}
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
6اكتب البرنامجتدريب إضافي

أعلن المتغير temperature وأسند له 38. إذا كانت 35 أو أكثر اطبع Very hot, drink water، وإلا إذا كانت 25 أو أكثر اطبع Warm، وإلا إذا كانت 15 أو أكثر اطبع Mild، وإلا اطبع Cold.

JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
7اكتب البرنامجتدريب إضافي

سعر تذكرة المتحف حسب العمر: أقل من 4 سنوات Free، ومن 4 إلى 12 Child ticket: 20 pounds، و60 أو أكثر Senior ticket: 25 pounds، وغير ذلك Adult ticket: 40 pounds. أعلن age = 10 واطبع التذكرة المناسبة.

تلميحإذا وصلنا إلى else if (age <= 12) فنحن نعرف أن العمر ليس أقل من 4.
JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.

النقاط الرئيسية

  • else if (شرط) تختبر شرطًا جديدًا فقط إذا لم يتحقّق ما قبله.
  • يُنفَّذ أول شرط صحيح فقط ويُتخطّى الباقي، لذلك ابدأ بالشرط الأضيق.
  • else الأخيرة اختيارية وبلا شرط، وتُنفَّذ عندما لا يتحقّق أي شرط.