الوحدة 4: التكرار · الموضوع 10 من 13
الموضوع 10

حلقة for

حلقة تكرار مثل while، لكنها تجمع الأجزاء الثلاثة في سطر واحد. الأنسب عندما يكون عدد التكرارات معروفًا.

12345 for (i = 1; i <= 5; i++)
بعد هذا الدرس ستستطيع أن:
  • كتابة رأس حلقة for بأجزائه الثلاثة.
  • تتبّع ترتيب تنفيذ أجزاء for.
  • العدّ التصاعدي والتنازلي وبخطوات مختلفة.
  • الاختيار بين for و while.

١تشريح رأس الحلقة

for ( int i = 1① التهيئة (مرّة); i <= 5② الشرط (قبل كل دورة); i++④ الزيادة (بعد كل دورة)) { ③ الكود المتكرّر }

تُفصل الأجزاء الثلاثة بفاصلة منقوطة ; وليست فاصلة عادية.

🔎 ترتيب التنفيذ ① ② ③ ④
Main.java
for (int i = 1; i <= 5; i++){    System.out.println(i);}
Variables · المتغيّرات في الذاكرة
Output×

٢for مقابل while

العمل نفسه، لكن for تجمع ما كان متفرّقًا:

while
snippet
int i = 1;while (i <= 5) {    System.out.println(i);    i++;}
for
snippet
for (int i = 1; i <= 5; i++) {    System.out.println(i);}
forwhile
متى؟عدد التكرارات معروف مسبقًاعدد التكرارات غير معروف
مثالكرّر 10 مرّات، أو من 1 إلى nكرّر حتى يُدخل المستخدم 0

٣أمثلة

العدّ التنازلي باستخدام --

Main.java
for (int i = 5; i >= 1; i--){    System.out.println(i);}
Output – JavaApplication (run)×
run:
5
4
3
2
1
BUILD SUCCESSFUL (total time: 0 seconds)

جمع الأرقام من 1 إلى 5

Main.java
int sum = 0; for (int i = 1; i <= 5; i++){    sum = sum + i;}System.out.println("المجموع = " + sum);
Output – JavaApplication (run)×
run:
المجموع = 15
BUILD SUCCESSFUL (total time: 0 seconds)
صمّم حلقتك

غيّر البداية والشرط والخطوة، وشاهد القيم التي تمرّ بها i.

قيم i في كل دورة

٤نقاط مهمة

توقّع وتحقّق

أجب قبل أن تنظر إلى الشرح. التصحيح فوري، وإجاباتك تُحفظ.

كم مرّة تتكرّر الحلقة؟

snippet
for (int i = 0; i < 5; i++)
i = 0, 1, 2, 3, 4.

ما الناتج؟

snippet
for (int i = 2; i <= 10; i = i + 2)    System.out.print(i + " ");

أي جزء من رأس for يُنفَّذ مرّة واحدة فقط؟

ما الخطأ في for (int i = 1, i <= 5, i++)؟

الخلاصة

تحدٍّ برمجي: جدول الضرب

سهل

اطبع جدول ضرب العدد 7 من 1 إلى 10 باستخدام حلقة for.

المطلوب:
  • كل سطر بالشكل: 7 x 1 = 7
  • استخدم متغيّرًا للعدد حتى يسهل تغييره.

ابدأ من هذا الكود، واضغط ▶ شغّل هنا لتكتب حلّك وتجرّبه مباشرة:

Table.java
public class Table{    public static void main(String[] args)    {        int n = 7;         // for (…)     }}
Output – المطلوب×
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63
7 x 10 = 70
💡 تلميح 1
for (int i = 1; i <= 10; i++)
💡 تلميح 2
الطباعة: n + " x " + i + " = " + (n * i)

حاول بنفسك أولًا؛ للمسألة أكثر من حلّ صحيح.

Table.java
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السؤال الثاني: صح أم خطأ

1) for و while يمكن أن تؤدّيا نفس العمل.
الصواب: صح
2) المتغيّر المُعرَّف داخل for يعمل داخلها فقط.
الصواب: صح
3) الشرط i<=5 يُكرّر أكثر من i<5 (بالبداية نفسها).
الصواب: صح
4) لا يمكن العدّ التنازلي في for.
الصواب: خطأ
5) الفواصل في for فاصلة عادية.
الصواب: خطأ

3السؤال الثالث: أكمل الفراغات

1) الصيغة: for ( ; الشرط ; )

💡 الجزء الأول والجزء الأخير في رأس for.

الإجابة: التهيئة، الزيادة

2) للعدّ التنازلي نستخدم .

💡 رمزان، عكس ++

الإجابة: --

3) الشرط i<5 يُكرّر مرّات إذا بدأت i من 0.

💡 i = 0, 1, 2, 3, 4

الإجابة: 5

4) تُفصل أجزاء for بفاصلة .

💡 نوع الفاصلة: ; وليست ,

الإجابة: منقوطة

5) الأنسب لـ for عندما يكون عدد التكرارات .

💡 معروف أم غير معروف مسبقًا؟

الإجابة: معروفًا

4السؤال الرابع: التوصيل

طابِق كل عنصر في العمود (أ) بما يناسبه في العمود (ب):

  1. 1) int i = 0
  2. 2) i < 5
  3. 3) i++
  4. 4) i--
  5. 5) ;
  1. أ. الزيادة.
  2. ب. التهيئة.
  3. ج. الفاصل بين الأجزاء.
  4. د. الشرط.
  5. هـ. النقصان.
المفتاح: (1) ب (2) د (3) أ (4) هـ (5) ج

5السؤال الخامس: أسئلة عملية

1) تتبّع الناتج:

snippet
for (int i = 1; i <= 3; i++) System.out.print(i + " ");
الناتج الصحيح:
Output×
1 2 3

2) تتبّع الناتج:

snippet
for (int i = 5; i >= 1; i--) System.out.print(i + " ");
الناتج الصحيح:
Output×
5 4 3 2 1

3) اكتب حلقة for تطبع الأرقام من 1 إلى 5:

الحل النموذجي:
Main.java
for (int i = 1; i <= 5; i++){    System.out.println(i);}
Output – JavaApplication (run)×
run:
1
2
3
4
5
BUILD SUCCESSFUL (total time: 0 seconds)
قارن إجابتك بالحل:
أجب عن الأسئلة ثم اضغط «صحّح ورقتي».