✅ أولاً: ما هي حلقة 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 | عندما تريد تنفيذ الكود مرة واحدة على الأقل قبل التحقق |