امتحان JS 2: الشروط والحلقات (10 تمارين مركبة)
امتحان JS 2: التحكم في التدفق والتكرار
اختبر قدرتك على اتخاذ القرارات البرمجية وتكرار العمليات باستخدام الشروط والحلقات.
تمرين 1
الجمل الشرطية (If/Else)
اكتب كوداً للتحقق من العمر:
- عرف متغيراً `age` بقيمة معينة.
- إذا كان العمر أكبر من أو يساوي 18، اطبع "بالغ".
- وإلا، اطبع "قاصر".
الحل
let age = 20;
if (age >= 18) {
console.log("بالغ");
} else {
console.log("قاصر");
}
تمرين 2
الشروط المتعددة (Else If)
قم بتقييم درجة الطالب:
- عرف متغيراً `score` (من 0 إلى 100).
- إذا كانت الدرجة >= 90 اطبع "ممتاز".
- إذا كانت >= 75 اطبع "جيد جداً".
- إذا كانت >= 50 اطبع "ناجح".
- غير ذلك اطبع "راسب".
الحل
let score = 85;
if (score >= 90) {
console.log("ممتاز");
} else if (score >= 75) {
console.log("جيد جداً");
} else if (score >= 50) {
console.log("ناجح");
} else {
console.log("راسب");
}
تمرين 3
جملة التبديل (Switch Statement)
استخدم `switch` للتحقق من اليوم:
- عرف متغيراً `day` يحتوي على رقم اليوم (1-7).
- إذا كان 1 اطبع "الأحد"، 2 "الاثنين"... وهكذا.
- أضف حالة افتراضية (default) تطبع "يوم غير صحيح".
الحل
let day = 3;
switch (day) {
case 1:
console.log("الأحد");
break;
case 2:
console.log("الاثنين");
break;
case 3:
console.log("الثلاثاء");
break;
default:
console.log("يوم غير صحيح");
}
تمرين 4
حلقة التكرار (For Loop)
استخدم حلقة `for` لطباعة الأرقام:
- اطبع الأرقام من 1 إلى 10.
- اطبع فقط الأرقام الزوجية في هذا النطاق.
الحل
for (let i = 1; i <= 10; i++) {
if (i % 2 === 0) {
console.log(i);
}
}
تمرين 5
حلقة التكرار (While Loop)
استخدم حلقة `while` للعد التنازلي:
- ابدأ من الرقم 5.
- اطبع الرقم ثم انقصه بمقدار 1 في كل دورة.
- توقف عندما يصل الرقم إلى 0 واطبع "انطلاق!".
الحل
let count = 5;
while (count > 0) {
console.log(count);
count--;
}
console.log("انطلاق!");
تمرين 6
التكرار عبر المصفوفات (Looping Arrays)
لديك مصفوفة `fruits = ["تفاح", "موز", "برتقال"]`:
- استخدم حلقة `for` لطباعة كل عنصر في المصفوفة.
- استخدم حلقة `for...of` لعمل نفس الشيء بطريقة أحدث.
الحل
let fruits = ["تفاح", "موز", "برتقال"];
// الطريقة التقليدية
for (let i = 0; i < fruits.length; i++) {
console.log(fruits[i]);
}
// for...of
for (let fruit of fruits) {
console.log(fruit);
}
تمرين 7
التحكم في الحلقة (Break & Continue)
داخل حلقة من 1 إلى 10:
- تخطى طباعة الرقم 5 (continue).
- أوقف الحلقة تماماً عند الوصول للرقم 8 (break).
الحل
for (let i = 1; i <= 10; i++) {
if (i === 5) {
continue; // تخطي
}
if (i === 8) {
break; // إيقاف
}
console.log(i);
}
تمرين 8
المعامل الشرطي الثلاثي (Ternary Operator)
أعد كتابة الشرط التالي بسطر واحد:
- إذا كان `isMember` صحيحاً، اجعل `fee` يساوي 10.
- وإلا اجعل `fee` يساوي 20.
الحل
let isMember = true;
let fee = isMember ? 10 : 20;
console.log(fee);
تمرين 9
حلقة Do...While
استخدم `do...while`:
- عرف متغيراً `i = 0`.
- اطبع الرقم وزده بواحد.
- استمر طالما `i` أقل من 3. (لاحظ أن الكود ينفذ مرة واحدة على الأقل).
الحل
let i = 0;
do {
console.log(i);
i++;
} while (i < 3);
تمرين 10
التكرار عبر خصائص الكائن (For...in)
لديك كائن `person = {name: "Ali", age: 30}`:
- استخدم حلقة `for...in` للمرور على جميع خصائص الكائن.
- اطبع اسم الخاصية وقيمتها (مثلاً: "name: Ali").
الحل
let person = { name: "Ali", age: 30 };
for (let key in person) {
console.log(key + ": " + person[key]);
}