الشروط if / else واتخاذ القرار
الشروط (Conditions) هي قلب البرمجة: نقول للبرنامج: إذا تحقق شرط معين نفّذ شيئًا… وإلا نفّذ شيئًا آخر. في هذا الدرس سنفهم if / else من الصفر وبأمثلة من الحياة الواقعية.
فكرة if / else ببساطة
تخيلها مثل قرار بسيط:
- إذا كنت مسجّل دخول → اعرض لوحة التحكم
- وإلا → اعرض صفحة تسجيل الدخول
هذه الفكرة تتكرر في كل البرامج تقريبًا.
شكل if الأساسي
هذا هو الشكل الأساسي:
if (condition) {
// نفّذ هذا إذا كان الشرط true
}
مهم جدًا
الشرط داخل الأقواس (...) لازم يرجع true أو false.
مثال بسيط: هل الرقم أكبر من 10؟
let number = 12;
if (number > 10) {
console.log("الرقم أكبر من 10");
}
إذا كان number أكبر من 10، سيطبع البرنامج الرسالة.
إذا لم يكن أكبر من 10… فلن يحدث شيء (لأننا لم نكتب else).
استخدام else (الخيار الآخر)
else تعني: “إذا لم يتحقق الشرط… افعل هذا”.
let age = 16;
if (age >= 18) {
console.log("مسموح لك بالدخول ✅");
} else {
console.log("غير مسموح لك بالدخول ❌");
}
هنا البرنامج دائمًا سيطبع شيئًا واحدًا: إما السماح أو الرفض.
استخدام else if (أكثر من حالة)
أحيانًا نحتاج أكثر من خيار، مثل تقييم الدرجة:
let score = 85;
if (score >= 90) {
console.log("ممتاز");
} else if (score >= 80) {
console.log("جيد جدًا");
} else if (score >= 70) {
console.log("جيد");
} else {
console.log("يحتاج تحسين");
}
كيف يقرأها البرنامج؟
- يفحص أول شرط
- إذا true يتوقف ويطبع نتيجته
- إذا false ينتقل للشرط اللي بعده
- إذا ولا شرط تحقق، يروح إلى else
شروط متعددة باستخدام && و ||
AND: && (لازم الكل صحيح)
let isLoggedIn = true;
let age = 19;
if (isLoggedIn === true && age >= 18) {
console.log("دخول مسموح ✅");
}
OR: || (يكفي واحد صحيح)
let isAdmin = false;
let isOwner = true;
if (isAdmin === true || isOwner === true) {
console.log("لديك صلاحية ✅");
}
أخطاء شائعة في if / else (انتبه لها)
- نسيان الأقواس
()حول الشرط - كتابة
=بدل===(الأول تعيين والثاني مقارنة) - الخلط بين النص والرقم (مثل "18" و 18)
- عدم ترتيب else if بشكل منطقي (من الأكبر للأصغر عادة)
تذكير سريع:
=تعني “ضع قيمة”===تعني “هل يساوي؟” بشكل صارم
بحسب خبرتي: شرط واضح خير من شرط ذكي
الشروط هي قلب البرمجة كما رأيت، لكن من واقع قراءتي لكثير من الأكواد، أكثر ما يفسدها هو المبالغة في التعقيد. رأيت شروطًا متداخلة على مستويات كثيرة حتى صارت مستحيلة الفهم.
القاعدة التي تعلّمتها بالتجربة: عالج الحالات البسيطة أولًا واخرج منها مبكرًا، فيبقى الكود مسطّحًا ومقروءًا. وانتبه للفخّ الكلاسيكي: علامة = تعني التعيين (خزّن القيمة)، بينما == و=== للمقارنة. كتابة = داخل الشرط خطأ شائع يغيّر سلوك برنامجك بصمت. ولاحقًا ستتعلّم الصيغة المختصرة (Ternary) التي تكتب شرطًا بسيطًا في سطر واحد — أنيقة، لكن لا تستخدمها إلا حين تبقى مقروءة.
أسئلة شائعة عن الشروط
متى أستخدم else if بدل عدة if منفصلة؟
استخدم else if حين تكون الحالات متنافية (يتحقّق منها واحدة فقط)، لأن البرنامج يتوقّف عند أول شرط صحيح فلا يكمل فحص البقية. هذا أوضح وأسرع من if مستقل لكل حالة.
كيف أدمج أكثر من شرط؟
استخدم && حين يجب تحقّق كل الشروط معًا، و || حين يكفي تحقّق واحد منها. وضع كل شرط بين قوسين يجعل نيّتك أوضح.
ماذا بعد هذا الدرس؟
الدرس القادم: Switch Case (اختيار من عدة حالات)
عندما يكون عندك خيارات كثيرة، switch قد تكون أوضح من if/else في بعض الحالات.