الشرط if و else
المعاملات المنطقية أعطتك جواب نعم/لا. السؤال التالي: أي أسطر يجب أن تعمل؟ إن كان الجواب نعم شغّل كتلة، وإن كان لا شغّل كتلة أخرى. هذا الاختيار هو if / else / else if. تعرف كيف تبني boolean؛ هنا تستخدمه لاختيار المسار.
ماذا يفعل if؟
ينظر if إلى الشرط بين القوسين. إن كانت القيمة truthy ينفّذ JavaScript الكتلة داخل الأقواس المعقوفة بعدها مباشرة. إن كانت falsy تُتخطى تلك الكتلة. else هو المسار الاحتياطي حين يفشل if. وelse if يضيف فحصاً آخر قبل else النهائي.
نظرة سريعة على الكلمات المفتاحية
📊 قطع if / else اليومية
| الكلمة | القراءة اليومية | الاستخدام المعتاد |
|---|---|---|
if |
إن مرّ هذا، نفّذ هذه الكتلة | الفحص الأول |
else if |
وإلا، إن مرّ هذا الفحص الآخر… | المسارات الوسطى |
else |
وإلا نفّذ هذا | المسار الأخير |
أبقِ الشرط صادقاً: مقارنة (age >= 18)، أو ربط منطقي (age >= 18 && score >= 60)، أو متغير boolean واضح. ثم ضع عمل ذلك المسار داخل { … }.
let age = 20;
if (age >= 18) {
console.log("adult");
}
console.log("done");
if يعمل فقط حين يمرّ الفحص
هنا age يساوي 20، فـage >= 18 يصبح true وتطبع وحدة التحكم adult ثم done. غيّر age إلى 16 فيبقى done فقط — تُتخطى كتلة if.
السطر بعد } المغلق يعمل عادة دائماً (ما لم تخرج لاحقاً من الدالة). if لا يوقف البرنامج كله؛ يقرر فقط إن كانت كتلته تعمل.
let age = 16;
if (age >= 18) {
console.log("adult");
} else {
console.log("under 18");
}
else يغطي المسار الآخر
الآن يفشل الفحص، فيتخطى JavaScript الكتلة الأولى وينفّذ else. ترى under 18. في زوج if / else البسيط يعمل مسار واحد بالضبط — لا الاثنان معاً ولا ولا واحد.
let score = 75;
if (score >= 90) {
console.log("A");
} else if (score >= 60) {
console.log("pass");
} else {
console.log("retry");
}
else if يضيف مسارات وسطى
score يساوي 75. يفشل الفحص الأول (>= 90). يمرّ الثاني (>= 60) فترى pass ويُتخطى else الأخير. الترتيب مهم: ضع الشروط الأشد أولاً حين تتداخل النطاقات.
لو كتبت ثلاثة if منفصلة قد تعمل أكثر من كتلة. else if يبقي المسارات حصرية — بعد أول تطابق تتوقف السلسلة.
let age = 20;
let score = 75;
if (age >= 18 && score >= 60) {
console.log("allowed");
} else {
console.log("blocked");
}
let ready = false;
if (!ready) {
console.log("wait");
}
ضع فحوصاً حقيقية داخل الأقواس
قد يكون الشرط مقارنة أو تعبيراً منطقياً أو boolean مقلوباً. age >= 18 && score >= 60 يساوي true فترى allowed. و!ready أيضاً true فترى wait. ابنِ نعم/لا أولاً؛ ثم دع if يختار الفرع.
let age = 20;
let label;
if (age >= 18) {
label = "adult";
} else {
label = "under 18";
}
console.log(label);
سمِّ نتيجة الفرع
أحياناً تريد نصاً (أو رقماً) من الاختيار لا مجرد console.log. عيّن label داخل كل فرع ثم استخدمه مرة بعدها. هنا يصبح label هو "adult".
اعرض المسار المختار في الصفحة
اصنع رسالة قصيرة بـif / else ثم اكتبها في الصفحة.
<!DOCTYPE html>
<html>
<head>
<title>If else — page branch</title>
</head>
<body>
<p id="out">…</p>
<script>
let age = 20;
let msg;
if (age >= 18) {
msg = "adult";
} else {
msg = "under 18";
}
let box = document.getElementById("out");
box.textContent = "status=" + msg;
</script>
</body>
</html>
age يساوي 20 فتظهر الصفحة status=adult. اجعل age يساوي 16 وحدّث الصفحة لترى status=under 18. الدرس التالي (switch) طريقة أخرى للاختيار بين قيم ثابتة كثيرة؛ أما بوابة نعم/لا اليومية فتبقى أدواتها if / else.
جرّب بنفسك
- سجّل
"ok"داخلif (true)وتأكد أنه يُطبع. - استخدم
if/elseمعlet age = 16واطبع"adult"أو"under 18". - ابنِ سلسلة
else ifلنطاقاتscore:A(≥ 90)،pass(≥ 60)، وإلاretry. - اجمع
age >= 18 && score >= 60في شرطifواحد. - خزّن نص
labelمنif/elseثم سجّله مرة. - في عرض HTML غيّر
ageفقط، حدّث الصفحة، واقرأ نصstatus=الجديد.
أخطاء شائعة
- نسيان الأقواس المعقوفة
{ }حول جسم الفرع - كتابة
if (age = 18)بـ=واحد (تعيين) بدل المقارنة - وضع
elseبلاifمطابق فوقه - عدة
ifمنفصلة حين قصدت مساراتelse ifحصرية - فحص النطاقات بترتيب خاطئ (مثل
>= 60قبل>= 90)
خلاصة
ifينفّذ كتلة حين يكون الشرط truthyelseيعمل حين فشل ذلكifelse ifيضيف مسارات وسطى حصرية- الشروط عادة مقارنات أو تعبيرات منطقية
- أبقِ كل فرع داخل أقواس؛ خزّن التسمية إن احتجت النتيجة لاحقاً
- التالي: أمر switch — الاختيار بين عدة قيم ثابتة
🧠 اختبر معرفتك
اختبر معرفتك
تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع
📝 التعليمات
- اقرأ كل سؤال بعناية
- اختر أفضل إجابة لكل سؤال
- يمكنك إعادة الاختبار عدة مرات كما تريد
- سيتم عرض تقدمك في الأعلى