حلقة while
بدل كتابة الأمر نفسه مرارًا، نطلب من الحاسب تكراره ما دام الشرط صحيحًا.
- شرح فكرة التكرار ومتى نحتاجه.
- كتابة حلقة while بأجزائها الثلاثة.
- تتبّع قيم المتغيّرات في كل دورة.
- اكتشاف الحلقة اللانهائية وتجنّبها.
١الفكرة
طباعة الأرقام من 1 إلى 100، أو إعادة سؤال حتى تصحّ الإجابة: كلاهما تكرار. والحلقة while تعني: «طالما الشرط صحيح، كرّر».
while (الشرط){ // الكود الذي يتكرّر}
٢الأجزاء الثلاثة لأي حلقة
int i = 1;i <= 5i++;int i = 1; while (i <= 5){ System.out.println(i); i++;}
لاحظ أن الشرط يُفحص 6 مرّات: خمس مرّات true، والسادسة false عندما تصبح i = 6.
٣مثال تطبيقي: جمع الأرقام من 1 إلى 5
int i = 1;int sum = 0; while (i <= 5){ sum = sum + i; i++;}System.out.println("المجموع = " + sum);
٤الحلقة اللانهائية
int i = 1;while (i <= 5){ System.out.println(i); // نسينا i++}
- الشرط يُفحص قبل كل تكرار؛ إن كان false من البداية فلن تُنفَّذ الحلقة إطلاقًا.
- هيّئ المتغيّر قبل الحلقة، وغيّره داخلها.
توقّع وتحقّق
أجب قبل أن تنظر إلى الشرح. التصحيح فوري، وإجاباتك تُحفظ.
كم مرّة تُطبع «مرحبا»؟
int i = 0;while (i < 3){ System.out.println("مرحبا"); i++;}
ما الناتج؟
int x = 10;while (x < 5){ System.out.println(x); x++;}
ما قيمة i بعد انتهاء حلقة الطباعة من 1 إلى 5؟
ما الذي يسبّب الحلقة اللانهائية غالبًا؟
الخلاصة
- while: «طالما الشرط صحيح كرّر».
- الأجزاء الثلاثة: تهيئة قبل الحلقة، شرط في رأسها، تغيير داخلها.
- الشرط يُفحص قبل كل دورة؛ قد لا تُنفَّذ الحلقة أبدًا.
- بلا تغيير للمتغيّر ← حلقة لا نهائية.
تحدٍّ برمجي: مجموع الأرقام
متقدّماحسب مجموع أرقام العدد 4728، أي 4+7+2+8، باستخدام حلقة while.
- في كل دورة: خذ آخر رقم بـ % 10 وأضفه للمجموع.
- ثم احذف آخر رقم بالقسمة الصحيحة / 10.
- توقّف عندما يصبح العدد 0.
ابدأ من هذا الكود، واضغط ▶ شغّل هنا لتكتب حلّك وتجرّبه مباشرة:
public class Digits{ public static void main(String[] args) { int n = 4728; int sum = 0; // while (…) System.out.println("مجموع الأرقام = " + sum); }}
💡 تلميح 1
💡 تلميح 2
حاول بنفسك أولًا؛ للمسألة أكثر من حلّ صحيح.
public class Digits{ public static void main(String[] args) { int n = 4728; int sum = 0; while (n > 0) { sum = sum + n % 10; // آخر رقم n = n / 10; // احذف آخر رقم } System.out.println("مجموع الأرقام = " + sum); }}
أسئلة التقييم
ورقة العمل: حلقة while. إجاباتك تُحفظ تلقائيًّا على هذا الجهاز؛ أجب ثم اضغط «صحّح ورقتي».
1السؤال الأول: اختر الإجابة الصحيحة
1) معنى while:
2) متى يُفحص الشرط في while؟
3) نسيان تغيير المتغيّر داخل الحلقة يسبّب:
4) الأجزاء الثلاثة لأيّ حلقة هي:
2السؤال الثاني: صح أم خطأ
3السؤال الثالث: أكمل الفراغات
1) الصيغة: while ( ) { ... }
💡 ما يوضع بين القوسين.
2) نضع قيمة البداية الحلقة.
💡 قبل أم بعد الحلقة؟
3) خطوة الاقتراب من التوقّف تُسمّى .
💡 مثل i++
4) تتوقّف الحلقة عندما يصبح الشرط .
💡 قيمة boolean التي توقف الحلقة.
5) نسيان الزيادة يسبّب حلقة .
💡 حلقة لا …
4السؤال الرابع: التوصيل
طابِق كل عنصر في العمود (أ) بما يناسبه في العمود (ب):
- 1) التهيئة
- 2) الشرط
- 3) الزيادة
- 4) الحلقة اللانهائية
- 5) i++
- أ. متى تستمر الحلقة.
- ب. قيمة البداية.
- ج. تزيد المتغيّر بواحد.
- د. الاقتراب من التوقّف.
- هـ. تحدث عند نسيان التغيير.
5السؤال الخامس: أسئلة عملية
1) تتبّع الناتج:
int i = 1;while (i <= 3) { System.out.print(i + " "); i++; }
2) كم مرّة تُطبع الرسالة؟ int i = 1; while (i <= 5) { ...; i++; }
3) اكتب حلقة while تطبع الأرقام من 1 إلى 3:
int i = 1;while (i <= 3){ System.out.println(i); i++;}