منتدى مصر التقني
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

البداية مع C# .NET ...درس (6):حلقات التكرار Loops

اذهب الى الأسفل

البداية مع C# .NET ...درس (6):حلقات التكرار Loops Empty البداية مع C# .NET ...درس (6):حلقات التكرار Loops

مُساهمة من طرف السنى السبت سبتمبر 21, 2013 11:39 am

بسم الله الرحمن الرحيم

أهلا بكم ...درس اليوم عن التكرار Loops أو الحلقات التكرارية فى السى شارب و التى يقصد بها تنفيذ التعليمات البرمجية عدة عدة مرات أو بمعنى أوضح هي سلسلة بسيطة من التعليمات و الأوامر ، تجنبنا كتابة آلاف الأوامر التي تكرر.

فمثلا نريد أن نكتب برنامج يقوم بإظهار الأرقام من واحد الى 100 أو 1000، فبالطرق التي درسناها سابقا نحتاج الى 100 سطر برمجي لإظهار 100 رقم ، أما باستعمالنا الحلقات التكرارية فيمكننا كتابة برنامج من حوالي 5 أسطر فقط يمكن أن يظهر لنا عدد غير منتهي من الأرقام. و و لغة السى شارب تحتوى على عدة أنواع من الحلقات التكرارية و هي على النحو التالى :



- for

- while

- do while




1_ الحلقة For  ...تستعمل الحلقة التكرارية for لتكرار نفس الأوامر عدة مرات ...ويتم بناء الحلقة على النحو التالى :

البداية مع C# .NET ...درس (6):حلقات التكرار Loops Cpp_for_loop
الكود:
for ( init; condition; increment )
{
   statement(s);
}
حيث أن :
_ init ...........متغير من نوع integer و الذى نحدد به القيمة التي ينطلق منها لحساب عدد مرات التكرار
_condition ....وهو الشرط المستخدم فى الحلقة بحيث إذا كان صحيحا، يتم تنفيذ جسم الحلقة و إن كان غير ذلك تتوقف الحلقة
_increment ...معدل الزيادة او النقصان نحدد به طول الخطوة التي تقوم بها الحلقة عند التكرار
_statement ...هى التعليمات البرمجية المطلوب تنفيذها

ملاحظات
1-   نلاحظ أن الثلاث معاملات مفصولة دائما بالفصلة المنقوطة (; )
2-   تكرار for  يستمر فى التنفيذ طالما كان شرط الاختبار صحيح وينتهى عندما يأخذ شرط الاختبار قيمة False.
3-   يؤثر التكرار على جملة واحدة فقط من بعد التكرار for أو تركيب structure إذا وجد.

مثال /توضيحى
الكود:
for (int i = 0; i < 10; i++)
{
Console.WriteLine("hello");
}
ستعملنا int i لإنشاء متغير جديد i من نوع integer و أعطيناه قيمة ابتدائية وهي 0 ، وهنا نستعمل المتغر i كعداد نحدد به القيمة التي ينطلق منها لحساب عدد مرات التكرار... استعملنا أيضا i<10 في المثال الأول وi<=10 ( المتغير i أصغر من أو يساوي 10) في المثال الثاني و هنا حددنا الشرط الذي تتوقف فيه الحلقة، كما في المثال الثاني فالحلقة تبدأ من 1 و تنتهي في 5 . أي أن هذه الحلقة تقوم بإظهار الكلمة hello 5 مرات.

اما بالنسبة ل i++ فنحدد به طول الخطوة التي تقوم بها الحلقة عند التكرار مثلا i++ تعني نضيف الى المتغير i رقم واحد في كل مرة وهي تساوي i+1......i+2 نضيف 2 كل مرة الى نقوم بالتكرار.

مثال أخر
الكود:
using System;

namespace Loops
{
    
    class Program
    {
        static void Main(string[] args)
        {
            /* for loop execution */
            for (int a = 10; a < 20; a = a + 1)
            {
                Console.WriteLine("value of a: {0}", a);
            }
            Console.ReadLine();
        }
    }
}
و النتائج على النحو التالى :

الكود:
value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19
2_ الحلقة while

لحلقة التكرارية while تقوم تنفيذ الأوامر الموجودة داخل هذه الحلقة و فقا لشرط معين يضعه المبرمج، فاذا اختل هذا الشرط تتوقف هذه الحلقة عن الكرار و يكمل البرنامج تنفيذ الأوامر الأخرى.....الفرق بينها و بين الحلقة for هو أنه يجب عليك اضافة العداد دائما داخل هذه الحلقة و إلا ستتسبب في حلقة غير منتهية.....ويتم بنائها على النحو التالى :

البداية مع C# .NET ...درس (6):حلقات التكرار Loops Cpp_while_loop
الكود:
while(condition)
{
   statement(s);
}
حيث أن قيمة الشرط condition  تقدر أولا إذا كانت هذه القيمة ليست صفرا ( أى عدد صحيح أو حقيقى ) يتم تنفيذ الأمر statement ثم يعيد تقدير قيم الشرط مرة أخرى. هاتين الخطوتين يتم تكرارهما إلى تكون قيمة الشرط صفرا ( أى أنها غير صحيح ) لاحظ ضرورة وجود الأقواس حول الشرط.......مثال توضيحى :

الكود:
using System;

namespace Loops
{
    
    class Program
    {
        static void Main(string[] args)
        {
            /* إسناد قيمة ابتدائية للعداد */
            int a = 10;

            /* تنفيذ الحلقة حتى يصبح الشرك غير محقق */
            while (a < 20)
            {
                Console.WriteLine("value of a: {0}", a);
                a++;
            }
            Console.ReadLine();
        }
    }
}
و النتائج ستكون على النحو التالى :

الكود:
value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19

3_ الحلقة الحلقة do- while

الحلقة التكرارية do-while هى غالبا مثل الحلقة while وتكون فى الصورة التالية

البداية مع C# .NET ...درس (6):حلقات التكرار Loops Cpp_do_while_loop
الكود:

do
statement;
while (condition);
الفرق الوحيد هو أن جملة الحلقة التكرارية do-while تبدأ بتنفيذ العملية statement أولا وتنتهي باختبار الشرط condition هاتين الخطوتين يتم تكرارهما إلى أن تكون قيمة الشرط صفرا( أى غير صحيح).

الحلقة التكرارية do-while دائما تنفذ مرة واحدة على الأقل بغض النظر عن قيمة الشرط condition لأن العملية تنفذ فى المرة الأولى قبل تقدير قيمة الشرط

مثال توضيحى :

الكود:
using System;

namespace Loops
{
    
    class Program
    {
        static void Main(string[] args)
        {
            /* local variable definition */
            int a = 10;

            /* do loop execution */
            do
            {
               Console.WriteLine("value of a: {0}", a);
                a = a + 1;
            } while (a < 20);

            Console.ReadLine();
        }
    }
}
و النتائج على النحو التالى :

الكود:
value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19
وفى النهاية تحياتى لكم
السنى
السنى
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 249
النقاط : 464
التقيم : 25
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

البداية مع C# .NET ...درس (6):حلقات التكرار Loops Empty رد: البداية مع C# .NET ...درس (6):حلقات التكرار Loops

مُساهمة من طرف VB.NET الثلاثاء أكتوبر 22, 2013 11:52 am

بارك الله فيك و فى شرحك الرائع
VB.NET
VB.NET
المراقبين
المراقبين

تاريخ التسجيل : 18/02/2011
المساهمات : 121
النقاط : 189
التقيم : 6
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى