foreach في لغة الجافا
اتكلمنا فى أحد الدروس السابق عن المصفوفة
وعرفنا ان المصفوفة بكل بساطة هى متغير بشيل اكثر من قيمة
او بمعنى اخر هو بيحجز مكان فى الذاكرة بس كبير شوية لتخزين مجموعة من القيم .
بس بشرط ان كل القيم تكون من نفس النوع (فى حالة هندرسها فى oop هتخلينا نقدر نخزن قيم مختلفة بداخل المصوفة )
واتكلمنا على كيفية انشاء المصفوفة
على سبيل المثال بافتراض مطلوب انشاء مصفوفة رقمية مكونة من خمسة اماكن او قيم
int [ ] arr =new int [ 5] ;
بهذة العبارة يتم حجز مساحة كبيرة فى الذاكرة مقسمة الى خمسة خانات على اساس الحجم الخاص بالمصفوفة الذى تم تحديدة.
ويتم تمييز كل خانة عن الاخرى بال index يبداء من الصفر وينتهى عند حجم المصفوفة ناقصا واحد .
ولادخال بيانات داخل المصفوفة
ببساطة يتم أدخال أو تخزين بيانات داخل المصفوفة كالتالى
arr[0]=10;
arr[1]=20;
arr[2]=30;
arr[3]=40;
arr[4]=50;
بهذا الكود يتم تخزين القيم داخل المصفوفة
نلاحظ الاتى
أن جميع القيم المدخلة من نفس نوع البيانات ويتم تخزين القيم داخل المصفوفة عن طريقة كتابة أسم المصفوفة يليها ال index
على يبداء من 0 وينتهى عند حجم المصفوفة ناقصا واحد .
يليها القيمة المراد تخزينها .
وتكلمنا ان فى طريقة أخرى لأنشاء المصفوفة وأدخال القيم مباشرة اليها .
int [ ] arr={10,20,30,40,50};
بهذا الكود تم انشاء مصفوفة رقمية
ملحوظة : من الممكن ادخال بيانات للمصفوفة من خلال جمل input وهى باستخدام
Scanner or JOptionPane
واستخدام احد الادوات المستخدمة فى عمل تكرار loop .
ولطباعة القيم المخزنة داخل المصفوفة
ببساطة يتم التعامل مع اى خانة داخل المصفوفة بتحديد اسم المصفوفة وكذلك رقم ال index
فمثلا اذا اردنا طباعة القيمة المخزنة فى المصفوفة السابقة فى ال index 2
System.out.print(arr[ 2]);
ويكون الناتج 30
اما لو اردنا طباعة كامل بيانات المصفوفة
فنحن نريد شي يمر على كامل خلايا المصفوفة وهنا هستخدم اما for او while
for(int i=0 ;i<5;i ++)
System .out.println(arr[i]);
بهذة العبارة يتم المرور على جميع خانات المصفوفة وطباعة محتوياتها .
من الممكن استبدال عبارة i< 5
i < arr .length هذا يرجع لنا حجم المصفوفة بدلا من كتابتة
واخيرا هناك نوع اخر من ال for يسمى
foreach
يمكن استخدامة مع المصفوفة ايضا
for(int k:arr)
System.out.println(k);
من خلال العبارة السابقة يتم وضع قيمة قيمة من قيم المصفوفة فى المتغير k وطباعه هذا المتغير .