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