بفضل الله في سلسة من المقالات سنتناول نشر دروس تعليم سي شارب C# ستكون شاملة ووافية للمبتدئين والمستوى المتوسط . سلسلة مقالات مأخوذة من كوداتي نتمنى أن تكون مفيدة لجميع الدارسين . وسنتناول في هذا الدرس الحلقات التكرارية في لغة سي شارب C# Loops .
سلسلة دروس تعلم سي شارب C# بالعربية
تم شرح فيما سبق :-
- الدرس الأول : مقدمة عن السي شارب #C
- الدرس الثاني : تركيب الجملة في سي شارب Syntax
- الدرس الثالث : التعليقات في سي شارب Comments
- الدرس الرابع : الطباعة في سي شارب Output
- الدرس الخامس : المتغيرات في سي شارب Variables
- الدرس السادس : المدخلات في سي شارب Inputs
- الدرس السابع : العمليات الرياضية في سي شارب Arithmetic Operations
- الدرس الثامن : العمليات المنطقية في سي شارب Logic Operations
- الدرس التاسع : الجمل الشرطية في سي شارب Condition Statement
الدرس العاشر : الحلقات التكرارية في سي شارب Loops
في هذا الدرس سنتاول الحلقات التكرارية في السي شارب C#
- الحلقة التكرارية For
- الحلقة التكرارية For-Each Loop
- الحلقة التكرارية While Loop
- الحلقة التكرارية Do While
- التحكم بالعبارات التكرارية Break and Continue
الحلقة التكرارية For
تستخدم التكرارية للتعامل مع الكود أكثر من مرة مثل طباعة رسالة اكثر من مرة .
Syntax
for(statement1; statement2; statement3){
// code block to be executed
}
for (int i = 0; i < 5; i++) {
// هنا ينفذ الكود المراد تكراره اكثر من مرة
}
for (int i = 10; i >= 5; i–) {
// هنا ينفذ الكود المراد تكراره اكثر من مرة
}
statement1: تعريف متغير واعطائه قيمة ثابتة كأن تكون بداية للتكرار او نهاية .
statement2: شرط استمرار التكرار .
statement3: زيادة او نقصان استمرار التكرار
i++
وتسمى increment وتعني تزايد العدد بمقدار واحد ويمكن استخدام بدلها i=i+1 او استخدام i+=1 فكلها نفس العمل .
i--
وتسمى decrement وتعني تناقص العدد بمقدار واحد ويمكن استخدام بدلها i=i-1 او استخدام i-=1 فكلها نفس العمل .
المثال الاول
في هذا المثال عرفنا متغير التكرار i واعطينا له قيمة ابتدائية وتساوي 0 , ووضعنا شرط التكرار طباعة قيمة ال i متى ما كانت الi اصغر من 3 وزيادة الi بقيمة 1 , ++
i
تعني زيادة بمقدار واحد
for (int i = 0; i < 3; i++) {
Console.WriteLine(i);
}
Output :
0
1
2
مثال ثاني
هنا قيمة بداية التكرار 1 وشرط التكرار ان يستمر مهما كانت قيمة الi اصغر من 4 او تساوي 4 والزيادة بمقدار 1 , للتنبيه i=i+1
هي نفسها ++
i
for (int i = 1; i <= 4; i=i+1) {
Console.WriteLine(i);
}
Output :
1
2
3
4
مثال ثالث
هنا قيمة بداية التكرار 5 ويستمر التكرار مهما كانت قيمة الi اصغر من او تساوي 10 والزيادة بمقدار 1 , للتنبيه i+=1
هي نفسها ++
i
وكذلك i=i+1
for (int i = 5; i <= 10; i+=1) {
Console.WriteLine(i);
}
Output :
5
6
7
8
9
10
مثال رابع
هنا قيمة بداية التكرار 0 ويستمر التكرار مهما كانت قيمة الi اصغر او تساوي 10 والزيادة بمقدار 2
for (int i = 0; i <= 10; i+=2) {
Console.WriteLine(i);
}
Output :
0
2
4
6
8
10
التكرار بالنقصان
في هذا المثال سنقوم بالنقصان وليس الزيادة لمتغير التكرار الi , للتنبيه i-=1
و i=i-1
و --i
نفس الاداء
for (int i = 5; i > 0; i–) {
Console.WriteLine(i);
}
Output :
5
4
3
2
1
مثال ثاني
for (int i = 10; i >=4; i-=2) {
Console.WriteLine(i);
}
Output :
10
8
6
4
الحلقة التكرارية المتداخلة For
في كل حلقة تكرار واحدة يتم تنفيذ حلقة تكرارية متكاملة داخل هذه الحلقة الرئيسية .
Syntax
for(statement1; statement2; statement3){
for(statementA; statementB; statementC){
}
}
مثال الاول في هذا المثال حلقة متداخلة اي حلقة تكرارية داخل حلقة اخرى
for (int i = 1; i <=3; i++) {
for (int j = 1; j <=2; j++) {
Console.WriteLine(“i=”+ i +” j=”+j);
}
}
Output :
i=1 j=1
i=1 j=2
i=2 j=1
i=2 j=2
i=3 j=1
i=3 j=2
مثال ثاني مثال لعملية الضرب
for (int i = 1; i <=3; i++) {
for (int j = 1; j <=2; j++) {
Console.WriteLine(i + ” * ” + j +”=” + (i*j));
}
}
Output :
1 * 1=1
1 * 2=2
2 * 1=2
2 * 2=4
3 * 1=3
3 * 2=6
مثال ثالث توضيح اكثر بساطة للتمييز بين عمل التكرار المتداخل
for (int i = 1; i <=3; i++) {
Console.WriteLine(“—-التكرار الخارجي—-“);
for (int j = 1; j <=2; j++) {
Console.WriteLine(“—-التكرار الداخلي—-“);
}
}
Output :
التكرار الخارجي
التكرار الداخلي
التكرار الداخلي
التكرار الخارجي
التكرار الداخلي
التكرار الداخلي
التكرار الخارجي
التكرار الداخلي
التكرار الداخلي
الحلقة التكرارية For-Each Loop
وهو نوع اخر من حلقات التكرار يستخدم بكثرة مع المصفوفات ( سنأخذ المصفوفات في الدرس القادم)
Syntax
foreach(type variableName in arrayName) {
// هنا ينفذ كود التكرار
}
مثال في هذا المثال قمنا بعمل مصفوفة من النصوص الخاصة بالسيارات ومن ثم قمنا بطباعتها باستخدام الfor
string[] cars = {“Volvo”, “BMW”, “Ford”, “Mazda”};
foreach(string i in cars) {
Console.WriteLine(i);
}
Output :
Volvo
BMW
Ford
Mazda
الحلقة التكرارية While Loop
شبيه بالحلقة التكرارية الfor لكن يعتمد مبدء عملها واستمرار دورانها على الشرط داخل القوس مهما كان متنفذ الشرط فهي تستمر بالتكرار .
Syntax
while (condition) {
// الكود المراد تكراره
}
مثال الاول
int i=10;
while(i>0)
{
Console.WriteLine(“i=”+i);
i=i-1;
}
Output :
i=10
i=9
i=8
i=7
i=6
i=5
i=4
i=3
i=2
i=1
توضيح المثال نلاحظ ان شرط الاستمرار هو i أكبر من الصفر اي مهما كان i اكبر من الصفر نفذ ما هو داخل القوس التكراري .
i=i-1
لابد ان نجعل للحلقة التكرارية حد عن الاستمرار بالتكرار لذلك قمنا في كل تكرار بطرح واحد من الi حتى ينزل الi تدريجياً من ال10 الى الصفر وبما ان ال i هنا اصبحت قيمتها صفر فهنا الشرط لا يتحقق وبالتالي لا يتم تنفيذ ماهو داخل القوس
مثال ثاني في هذا المثال قمنا بالزيادة حتى وصولا الى ال10 .
int i=0;
while(i<=10)
{
Console.WriteLine(“i=”+i);
i++ ;// i=i+1 , i+=1
}
Output :
i=0
i=1
i=2
i=3
i=4
i=5
i=6
i=7
i=8
i=9
i=10
الحلقة التكرارية Do While
مبدء استخدامها عكس الWhile حيث في البداية تقوم بتنفيذ ما داخل القوس ومن ثم تتحقق من الشرط لتتأكد هل الشرط يتحقق لتستمر في التكرار .
المثال الاول
نلاحظ في هذا المثال قمنا بتنفيذ ما هو داخل الdo ثم قمنا بعملية التحقق من الشرط while وكالأتي قمنا بطباعة قيمة ال i والتي تساوي 10 ومن ثم طرح من قيمة الi لتصبح قيمتها 9 وبعدها مررنا للتحقق من الشرط فوجد ان i التي اصبحت قيمتها 9 هي ليست اكبر من ال5 كما في المثال وبالتالي لا يتحقق الشرط فخرج من عملية التكرار
int i=10;
do{
Console.WriteLine(“i=”+i);
i–;
} while(i<5)
Output :
i=10
مثال ثاني
int i=10;
do{
Console.WriteLine(“i=”+i);
i–;
} while(i>=5)
Output :
i=10
i=9
i=8
i=7
i=6
i=5
التحكم بالعبارات التكرارية Break and Continue
break وتستخدم لتوقف الحلقة التكرارية عند حد ما وذلك بوضع شرط فاذا تحقق الشرط ينهي الحلقة التكرارية عن الاستمرار .
for (int i = 0; i < 10; i++) {
if (i == 4) {
break;
}
Console.WriteLine(i);
}
Output :
0
1
2
3
continue وتستخدم لتخطي تنفيذ التكرار عند تحقق شرط ما فمثلا في هذا المثال شرطنا اذا الi اصبحت تساوي قيمتها 4 هنا تخطي هذه المرحلة من التكرار واستمر بباقي عمليات التكرار .
for (int i = 0; i < 10; i++) {
if (i == 4) {
continue;
}
Console.WriteLine(i);
}
Output :
0
1
2
3
5
6
7
8
9
Break and Continue with While Loop
break
int i = 0;
while (i < 10) {
Console.WriteLine(i);
i++;
if (i == 4) {
break;
}
}
Output :
0
1
2
3
Continue
int i = 0;
while (i < 10) {
if (i == 4) {
i++;
continue;
}
Console.WriteLine(i);
i++;
}
Output :
0
1
2
3
5
6
7
8
9