This article is currently in the process of being translated into Arabic (~98% done).
Loops
من التقنيات الاساسيه عند كتابه البرمجيات هى ال looping - القدرة على تكرار مجموعه اكواد معينه عده مرات فى لغه السى شارب هناك 4 انواع مختلفه لل loop .سناخذ نظرة عن كل واحده منهم
The while loop
while loop وهى ابسط انواع ال loop لذلك سنبدا بها while loop تقوم باستخراج مجموعه اكواد طالما ان الشرك المكتوب بداخلها مازال صحيحا مثال بسيط ثم بعض الشرح اكثر
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int number = 0;
while(number < 5)
{
Console.WriteLine(number);
number = number + 1;
}
Console.ReadLine();
}
}
}
حاول تقوم بعمل run للكود سيظهر لك الارقام من 0 ال 4. المتغير number تم اعطاءه قيمه مبدايه بصفر وفى كل مرة الكود المكتوب بداخل ال loop يتم تنفيذه يتم زياده المتغير number بمقدار واحد ولكن لماذا يصل فقط الى رقم 4 ويطبعه ولا يستسمر بداخل اللوب ثم يخرج خارج ال while loop عندما يتم زياده المتغير number الى رقم 5 لكى يكون الشرط عند ال while loop صحيحا يجب على المتغير number ان يكون اقل من 5 وهذا معناه ان الكود المكتوب داخل ال while loop الذى يقوم بطباعه قيمه المتغير number لم يصل بعد الى قيمه المتغير number عندما يساوى 5 هذا لان الشرط الموجود عند ال while loop يتم فحصه وتنفيذه قبل ان يتم تنفيذ الكود بداخل ال while loop
The do loop
العكس صحيح ل do loop التى تعمل مثل ال while loop فى كثير من الجوانب. The do loop تقوم بفحص الشرط المكتوب بعد ان يتم تنفيذ الكود بداخل ال do loop . الذى يجعلنا متاكدين ان مجموعة الاكواد المكتوبه بداخل ال do loop دائما يتم تنفيذها مرة على الاقل
int number = 0;
do
{
Console.WriteLine(number);
number = number + 1;
} while(number < 5);
المخرج النهائى هو نفس المخرج لل while loop لانه عندما يصل المتغير number الى رقم 5 يكون الشرط الموجود عند ال do loop خطا ويتم الخروج خارج ال do loop
The for loop
The for loop مختلفه قليلا عن باقى الانواع . يفضل استخدامها عندما تعلم كم عده المرات التى ترغب بتكرارها لمجموعه الاكواد .اما لانك تعلم عدد المرات التى تريد تكراراها لمجموعه اكواد معينه او لانك تملك متغير يحتوى على عدد التكرارات. مثال ل for loop
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int number = 5;
for(int i = 0; i < number; i++)
Console.WriteLine(i);
Console.ReadLine();
}
}
}
هذا الكود سيطبع نفس المخرج النهائى للامثله السابق ذكرها فى المقال وهى الارقام من 0 الى 4 ولكن كما ترى the for loop تعتير موجزة بشكل كبير حيث انها تحتوى على ثلاثه اجزاء فقط للكود اولا : يتم تعريف متغير واعطاءه قيمه مبدئيه للعد ثانيا: نقوم بوضع جمله شرط يتم اختبارها وفحصها فى كل مرة قبل تنفيذ الكود المكتوب بداخل ال for loop ثالثا:نقوم بزياده قيمه المتغير الذى اعطيناه قيمه مبدئيه بمقدار واحد
الجزء الاول من الكود المكتوب عند ال for loop عندما قمنا بتعريف المتغير i واعطيناه قيمه بصفر ويتم تنفيذ هذا الجزء مرة واحده فقط قبل ان نبدا بال loop الجزئين الاخرين يتم تنفيذهم فى كل مرة تكرار لل loop فى كل مرة نقوم بمقارنه قيمه المتغير i بالمتغير number واذا كان المتغير i اقل من المتغير number يتم تنفيذ الكود بداخل ال for loop ثم نقوم بزياده قيمه ال i ثم نقارنها بقيمه المتغير number وهكذا
حاول ان تقوم بعمل run للبرنامج وبعد ذلك حاول تغيير قيمه المتغير number لقيمه اكبر او اقل من 5 وستجد ال loop متجاوب مع التغيير الذى قمت به
The foreach loop
اخر نوع من انواع ال loop التى سنستعرضها هى ال foreach loop والتى يتم تطبيقها على مجموعه من العناصر مرة واحده مثل ال array او اى نوع اخر من المتغيرات التى تحمل مجموعه من القيم بداخلها فى المثال الى سنستعرضه سنقوم باستخدام واحده من ابسط المتغيرات التى تحمل مجموعه من القيم والتى تسمى ArrayList والتى تعمل مثل ال array ولكن لا تقلق سوف نقوم بشرحها فى شابتر لاحقا
using System;
using System.Collections;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
ArrayList list = new ArrayList();
list.Add("John Doe");
list.Add("Jane Doe");
list.Add("Someone Else");
foreach(string name in list)
Console.WriteLine(name);
Console.ReadLine();
}
}
}
حسنا, لقد قمنا بتعريق متغير من نوع ArrayList وبعد ذلك قمنا باضافه مجموعه من الجمل النصيه اليه.لقد استخدمنا the foreach loop لنمر على كل قيمه بداخل هذا المتغير, وقمنا بتعريف متغير name من نوع string لنساويه بكل قيمه موجوده داخل المتغيرمن نوع ArrayList ثم نقوم بطبعه قيمه المتغير name .ودائما نقوم بتعريف المتغير داخل ال foreach loop على حسب ال datatype المناسبه فاذا كان مثلا المتغير الذى قمنا بتعريفه من نوع ArrayList يحمل ارقام صحيحه فسوف نقوم بتعريف المتغير داخل الforeach loop من نوع int واذا كان المتغير يحمل حروف فسوف نقوم بتعريف المتغير داخل ال foreach loop من نوع char وهكذا
عندما نقوم باستخدام المتغيرات من نوع collections وهى المتغيرات التى تحمل اكثر من قيمه . فسوف تسخدم foreach loop فى كثير من الاوقات لانها ابسط واسهل من اى نوع اخر من ال loop مع هذا النوع من المتغيرات والعمليات