عبارة عن جملة 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("علي ناجح بتقدير جيد جدًا");
}
}
JavaScriptlet name = "Sara";
let grade = 92;
if (name === "Sara") {
if (grade >= 90) {
console.log("Sara ناجحة بتقدير ممتاز");
} else {
console.log("Sara ناجحة");
}
}
JavaScriptlet isLoggedIn = true;
let hasSubscription = true;
if (isLoggedIn) {
if (hasSubscription) {
console.log("مرحبًا، لديك صلاحية الدخول للمحتوى");
} else {
console.log("يرجى الاشتراك للوصول إلى المحتوى");
}
}
JavaScriptlet age = 18;
let major = "Computer Science";
if (age >= 18) {
if (major === "Computer Science") {
console.log("أهلًا بك في قسم علوم الحاسوب");
} else {
console.log("يرجى اختيار تخصص الحاسوب للتسجيل");
}
}
JavaScriptlet math = 85;
let average = 80;
if (math >= 70) {
if (average >= 75) {
console.log("مؤهل للتخصص في الرياضيات");
} else {
console.log("درجة الرياضيات جيدة، لكن المعدل غير كافٍ");
}
}
JavaScriptlet hasAccount = true;
let balance = 100;
if (hasAccount) {
if (balance >= 50) {
console.log("يمكنك شراء هذا المنتج");
} else {
console.log("الرصيد غير كافٍ");
}
}
JavaScript