✅ أولاً: ما هي حلقة while
؟
هي حلقة تكرار تقوم بتنفيذ كود معين طالما أن الشرط صحيح (true). أي أنها تتحقق من الشرط أولًا، ثم تنفذ الكود.
✅ الصيغة العامة:
while (الشرط) {
// الكود الذي يتم تنفيذه
}
JavaScriptإذا كان الشرط false
من البداية، فلن تُنفذ الحلقة إطلاقًا.
✅ مثال بسيط:
let i = 1;
while (i <= 5) {
console.log("القيمة:", i);
i++;
}
JavaScript✅ الخصائص العامة لحلقة while
:
الخاصية | الشرح |
---|---|
تتحقق من الشرط أولًا | إذا لم يتحقق الشرط، فلن يتم تنفيذ الكود الداخلي أبدًا. |
لا تحتوي على عداد تلقائي | يجب أن تُحدث المتغير (مثل i++ ) يدويًا لتجنب التكرار اللانهائي. |
مناسبة للتكرار غير المعروف مسبقًا | تُستخدم عندما لا تعرف عدد التكرارات بالضبط (مثل انتظار إدخال صحيح من المستخدم). |
✅ أمثلة عملية:
📌 1. طباعة الأرقام من 1 إلى 10
let i = 1;
while (i <= 10) {
console.log(i);
i++;
}
JavaScript📌 2. استخراج الأرقام فقط من مصفوفة
let arr = [1, "نص", true, 4, "كلمة", false];
let i = 0;
while (i < arr.length) {
if (typeof arr[i] === "number") {
console.log("رقم:", arr[i]);
}
i++;
}
JavaScript📌 3. إدخال من المستخدم حتى يكتب كلمة معينة (محاكاة)
let input;
let counter = 0;
while (input !== "خروج") {
// لاحظ: prompt لا تعمل خارج المتصفح
input = prompt("اكتب أي شيء (اكتب 'خروج' للخروج):");
counter++;
}
console.log("عدد المحاولات:", counter - 1);
JavaScript📌 4. تكرار عشوائي حتى ظهور رقم معين
let num;
while (num !== 7) {
num = Math.floor(Math.random() * 10); // عشوائي من 0 إلى 9
console.log("جربنا:", num);
}
JavaScript📌 5. التكرار على مصفوفة بدون for
let names = ["أحمد", "سارة", "ليلى"];
let index = 0;
while (index < names.length) {
console.log("الاسم:", names[index]);
index++;
}
JavaScript❗ التحذير من الحلقات اللانهائية:
let i = 1;
while (i <= 5) {
console.log(i);
// ❌ إذا لم تكتب i++، ستتكرر إلى ما لا نهاية
}
JavaScript✅ متى تستخدم while
بدل for
؟
تستخدم while عندما: |
---|
لا تعرف عدد التكرارات مسبقًا |
تريد الانتظار لشرط معين ليتحقق |
تريد تكرار العملية بناءً على إدخال المستخدم أو شرط ديناميكي |
✅ مقارنة مع for
:
الفرق | for | while |
---|---|---|
معرفة عدد التكرارات؟ | الأفضل إذا كنت تعرف العدد مسبقًا | الأفضل إذا لا تعرف العدد مسبقًا |
كتابة الشرط؟ | كل شيء داخل السطر الواحد (for ) | تحتاج لتحديث المتغير يدويًا |
✅ أولاً: ما هي do...while
؟
هي حلقة تكرار تشبه while
، لكن الفرق الأساسي هو:
🔁 تنفذ الكود أولاً ثم تتحقق من الشرط!
يعني: تُنفذ على الأقل مرة واحدة مهما كان الشرط.
✅ الشكل العام:
do {
// الكود الذي يتم تنفيذه أولاً
} while (الشرط);
JavaScript✅ الفرق الجوهري بين while
و do...while
:
المقارنة | while | do...while |
---|---|---|
التحقق من الشرط | قبل تنفيذ الكود | بعد تنفيذ الكود مرة واحدة على الأقل |
تنفيذ مضمون الكود | فقط إذا تحقق الشرط | دائمًا يتم تنفيذه مرة واحدة أولًا |
الاستخدام الشائع | عند احتمال عدم الحاجة للتنفيذ | عند الرغبة في تنفيذ الكود مرة واحدة على الأقل |
✅ مثال 1: استخدام do...while
لطباعة الأرقام
let i = 1;
do {
console.log("الرقم:", i);
i++;
} while (i <= 5);
JavaScript✅ مثال 2: الفرق العملي بينها وبين while
let x = 10;
while (x < 5) {
console.log("لن تظهر");
}
JavaScript❌ لن يتم تنفيذ الكود لأن الشرط خاطئ من البداية.
مثال:
let x = 10;
do {
console.log("تم تنفيذ الكود مرة واحدة!");
} while (x < 5);
JavaScript✅ مثال 3: إدخال مستخدم حتى يكتب “نعم”
let answer;
do {
answer = prompt("هل تريد المتابعة؟ (اكتب نعم للمتابعة):");
} while (answer !== "نعم");
console.log("تمت المتابعة ✅");
JavaScript✅ يتم عرض prompt دائمًا مرة واحدة على الأقل، حتى لو كان المستخدم لا يريد.
✅ مثال 4: بناء قائمة تلقائية حتى رقم معين
let i = 1;
let result = "";
do {
result += `عنصر ${i}\n`;
i++;
} while (i <= 3);
console.log(result);
JavaScript✅ ملخص متى تستخدم do...while
استخدمها عندما: |
---|
تحتاج تنفيذ الكود على الأقل مرة واحدة (مثل الطلب من المستخدم) |
تتعامل مع إجراءات تحدث أولاً ثم يتم التحقق من صحتها |
تريد التأكد من تنفيذ الكود قبل التحقق من الشرط |
✅ مقارنة أخيرة بين while
و do...while
و for
النوع | متى يستخدم؟ |
---|---|
for | عندما تعرف عدد التكرارات مسبقًا |
while | عندما لا تعرف عدد التكرارات وتريد التحقق قبل التكرار |
do...while | عندما تريد تنفيذ الكود مرة واحدة على الأقل قبل التحقق |