Nested If

عبارة عن جملة if بداخل جملة if أخرى.

🔸 أي: لا يتم تنفيذ الشرط الداخلي إلا إذا تحقق الشرط الخارجي أولًا.

📌 الصيغة العامة:
if (condition1) {
  if (condition2) {
    // كود يتم تنفيذه فقط إذا تحقق الشرطان معًا
  }
}
JavaScript

✅ مثال 1: قبول طالب في اختبار

let passedExam = true;
let attendanceRate = 90;

if (passedExam) {
  if (attendanceRate >= 80) {
    console.log("الطالب ناجح ومُلتزم بالحضور");
  }
}
JavaScript

📌 الشرح:

  • أولًا: نتأكد أن الطالب نجح في الامتحان
  • بعدها فقط، نتحقق من التزامه بالحضور

✅ مثال 2: التحقق من تسجيل الدخول والصلاحيات

let isLoggedIn = true;
let isAdmin = false;

if (isLoggedIn) {
  if (isAdmin) {
    console.log("مرحبًا، مدير النظام");
  } else {
    console.log("مرحبًا، مستخدم عادي");
  }
}
JavaScript

📌 الشرح:

  • يتم التحقق أولًا من أن المستخدم سجل الدخول
  • بعدها نقرر هل هو مدير أم مستخدم عادي

🎯 فوائد استخدام nested if:

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

مثال:

let studentName = "Ali";
let grade = 85;

if (studentName === "Ali") {
  if (grade >= 80) {
    console.log("علي ناجح بتقدير جيد جدًا");
  }
}
JavaScript
let name = "Sara";
let grade = 92;

if (name === "Sara") {
  if (grade >= 90) {
    console.log("Sara ناجحة بتقدير ممتاز");
  } else {
    console.log("Sara ناجحة");
  }
}
JavaScript
let isLoggedIn = true;
let hasSubscription = true;

if (isLoggedIn) {
  if (hasSubscription) {
    console.log("مرحبًا، لديك صلاحية الدخول للمحتوى");
  } else {
    console.log("يرجى الاشتراك للوصول إلى المحتوى");
  }
}
JavaScript
let age = 18;
let major = "Computer Science";

if (age >= 18) {
  if (major === "Computer Science") {
    console.log("أهلًا بك في قسم علوم الحاسوب");
  } else {
    console.log("يرجى اختيار تخصص الحاسوب للتسجيل");
  }
}
JavaScript
let math = 85;
let average = 80;

if (math >= 70) {
  if (average >= 75) {
    console.log("مؤهل للتخصص في الرياضيات");
  } else {
    console.log("درجة الرياضيات جيدة، لكن المعدل غير كافٍ");
  }
}
JavaScript
let hasAccount = true;
let balance = 100;

if (hasAccount) {
  if (balance >= 50) {
    console.log("يمكنك شراء هذا المنتج");
  } else {
    console.log("الرصيد غير كافٍ");
  }
}
JavaScript