اللوبس هي أحد أهم المفاهيم في البرمجة. بتستخدمها لما بتحتاج تشغّل كود معين أكثر من مرة، سواء ثلاث مرات أو مية أو حتى مليون مرة.
ببساطة، الـ loop بيخليك تعمل run لنفس الكود عدد مرات محدد بناءً على شرط معين.
اليوم رح نحكي عن أول نوع من اللوبس، وهو الـ for loop.
الـ for loop عنده ثلاث عوامل أساسية:
| العامل | الاسم | الوصف |
|---|---|---|
| الأول | Initialization | متغير بيبدأ عادةً من 0 |
| الثاني | Condition | الشرط اللي لما يصير false بيوقف اللوب |
| الثالث | Update | تغيير قيمة المتغير لتفادي الـ infinite loop |
الـ initialization هو متغير بيُعرَّف في بداية اللوب. بالعادة بيُرمز له بـ i وقيمته الابتدائية بتكون 0. الشرط بيحدد إيمتى اللوب يشتغل وإيمتى يوقف. مثلاً، i < 3 يعني اللوب رح يكمل يشتغل طالما i أصغر من 3.
هذا أهم عامل. لازم نغيّر قيمة الـ i في كل جولة، لأنه لو ضلّت القيمة 0 دايماً، اللوب رح يشتغل بشكل لا نهائي، يعني infinite loop.
عادةً بنستخدم i++ لزيادة القيمة بواحد في كل جولة.
خلينا نتابع مثلاً على i < 3:
i = 0، هل 0 < 3؟ نعم - نعمل run للكودi++ فـ i صارت 11 < 3؟ نعم - نعمل run للكود مرة ثانيةi++ فـ i صارت 22 < 3؟ نعم - نعمل run للكود مرة ثالثةi++ فـ i صارت 33 < 3؟ لا - الشرط صار false فاللوب بيوقفfor (int i = 0; i < 3; i++) {
System.out.println(i);
}
الـ output رح يكون:
0
1
2
كل عامل بينفصل عن الثاني بـ semi-colon ;. لو غيّرنا الشرط لـ i < 5 مثلاً، اللوب رح يشتغل خمس مرات.
بدل ما نحدد عدد مرات اللوب يدوياً، ممكن نخليه ديناميكي بناءً على طول المصفوفة.
نحدد مصفوفة بـ:
int[] numbers = {100, 200, 300};
بدل ما نحط i < 5 أو أي رقم ثابت، نستخدم numbers.length اللي بيعطينا طول المصفوفة تلقائياً. طول المصفوفة هون هو 3.
for (int i = 0; i < numbers.length; i++) {
System.out.println(i);
}
هيك رح نضمن إن اللوب يشتغل بالضبط بقدر عدد العناصر الموجودة في المصفوفة.
لو بدنا نطبع كل قيمة موجودة بالمصفوفة، منستخدم الـ i كـ index للوصول لكل عنصر.
تذكّر إن الـ array بنعمل access لعناصره عن طريق الـ index اللي بيبدأ من 0، يعني numbers[0] هو 100، وnumbers[1] هو 200، وهكذا.
int[] numbers = {100, 200, 300};
for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
الـ output رح يكون:
100
200
300
اللوب رح يعمل run ثلاث مرات، وفي كل جولة رح يطبع القيمة الموجودة في الـ index الحالي.
اشترك في النشرة البريدية
دروس جديدة، مقالات، وأدوات مباشرة لبريدك.