بتـــــاريخ : 11/8/2008 7:58:14 PM
الفــــــــئة
  • الحـــــــــــاسب
  • التعليقات المشاهدات التقييمات
    0 1159 0


    أوامر التحكّم - التكرار

    الناقل : mahmoud | العمر :35 | الكاتب الأصلى : JavaGirl | المصدر : www.kettaneh.net

    كلمات مفتاحية  :
    أوامر التحكم التكرار دروس جافا

     

    لسلام عليكم و رحمة الله و بركاته

     

    اليوم نتابع الحديث عن اوامر التحكم المهمة في البرمجة. و حديثنا اليوم سيكون عن التكرار Loops. فأنت تحتاج في بعض الأحيان أن تقوم بتكرار مجموعة من الأوامر المتتالية اكثر من مرة.

    لاحظ أن كل ما هو أحمر، لابد من كتابته بنفس الشكل و الطريقة، و الآن لنفسّر الألغاز الثلاثة الموجودة في السطر الأول و التي تفصل بينها فواصل منقوطة (و ليست فواصل عادية):

    • initialization:

      نضع في هذا الجزء متغير، و نعطيه القيمة المبدئية التي يبدأ منها التكرار. و سنرى بعد قليل كيف يفيدنا هذا. ويمكنك أن تنشئ متغيراً جديداً و تعطيه القيمة المبدئية
       

    • condition:

      هنا نضع الشرط الذي نتوقّف عن العد عنده.
      إن تحقق الشرط في هذه الجملة، يعني أن التكرار سوف يتوقّف.
       

    • increment:

      هنا نضع جملة الزيادة (أو النقصان) و نعني بذلك، الرقم الذي نزيد المتغير الذي عرّفناه في قسم initialization.

    ثم تلاحظ أن جملة for لها قوسا مجموعة يحصران بينهما مجموعة الأوامر المراد تكرارها.

    لنحاول تطبيق ذلك على مثال عملي:

     

    كيف تعمل جملة for في المثال السابق؟

    اتبع الخطوات حتى تعرف كيف تعمل جملة for:

    1. أول ما يصل البرنامج لأمر for يقوم بادئ ذي بدء بتنفيذ الجملة التالية:


      حيث يقوم بحجز مساحة للمتغير (
      i
      ) و يعطيه القيمة (0).
       
    2. يتحقق من الشرط الموجود في هذه الجملة:


      إذا أرجع الشرط قيمة (
      true) أي أنه بلغة البشر كان صحيحاً فسينفّذ الخطوة رقم 3. أما إذا أرجع القيمة false، أي أن الجملة كانت خاطئة فسيقفز حتى الخطوة 5.
       
    3. سينفذ الأوامر المحصورة بين قوسي المجموعة بالترتيب حتى يصل إلى  القوس الذي يغلق  جملة for، و في حالتنا سيقوم بتنفيذ أمر الطابعة. هكذا:


       
    4. سيعود التنفيذ إلى سطر جملة for الأول مرة أخرى، و هذه المرة، سيقوم بتنفيذ الجزء الثالث من جملة for و هو:


      حيث سيقوم بزيادة قيمة المتغير (i) -في هذه الحالة بواحد- أي أنه ستصبح قيمة (i) الجديدة هي (1) بعد أن كانت صفراً. ثم سيعود لتنفيذ الخطوة 2 مرة أخرى.
       
    5. إذا وصلت إلى هذه الخطوة معنى ذلك أن الشرط في الخطوة 2 لم يتحقق، و أعاد لي القيمة false عندها، سنخرج من  جملة for، ونقوم بالبدء في تنفيذ الأوامر التي تليها، و في حالتنا الأمر الذي يطبع كلمة Hala هكذا:

    أرجو أن تكون الخطوات قد أوضحت جملة for بشكل تام :-)

     

    نقطة توقّف..

    • من الممكن الاستغناء عن أقواس المجموعة في جملة for إذا كان الأمر المراد تكراره واحداً فقط، و لكن من الأفضل أن يتم التعوّد على وضع الأقواس، حتى يصبح برنامجك أوضح عند قراءته.
    • يمكنك تجربة أن تطبع المتغير (i) مع الجملة. و حاول بناءً على نفس المنهاج أن تطبع جدول الضرب.
    • المتغير (i) سيكون مجاله فقط في داخل الـ for ولن يمكن استخدامه خارجها، إلا مع إشهاره من جديد.
    • يمكن عمل جملة for داخل جملة for أخرى، و سيتم تنفيذ جملة for الداخلية كل مرة من البداية مع كل تنفيذ لجملة for الخارجية.
    • من الممكن أن ننقص قيمة المتغير i في جزء الـ Increment. ليتم العد تنازلياً إذا بدأنا من قيمة كبيرة للـ (i).

     

    while loop:

    في هذا النوع من التكرار في الجافا، يتم تكرار مجموعة الأوامر بناءً على تحقق شرط معيّن. وهذا هو الشكل العام لجملة while:

    فتحقق الشرط الموجود في ما بين القوسين بعد كلمة while (يعني تكون قيمته المنطقية true) يعني أنه سيتم تنفيذ Statement 1 و  Statement 2 و هكذا. لنفترض أننا نريد أن نكتب برنامجاً يقوم بعرض مجموع الأرقام المتتالية حتى رقم محدد، لننظر للبرنامج التالي:

    لاحظ في المثال، في البداية قمنا باشهار ثلاثة متغيرات: المتغير (i) ووضعنا فيه القيمة صفر، و المتغير (max) ووضعنا فيه القيمة 4،و المتغير sum و أعطيناه القيمة صفر.

    ثم بدأنا نكتب جملة while، ووضعنا في مكان الـ condition الجملة المنطقية (i<=max), في هذه الجملة، نقارن قيمة المتغير (i) بقيمة (max). فإذا كانت فعلاً أصغر منها أو تساويها فإن الجملة المنطقية ستكون صحيحة true و سيتم الدخول إلى جملة while و تنفيذ السطرين التاليين:

    والآن تتبع معنا الخطوات التالي بالضغط على زر إبدأ:

     

     sum

       i 
    ماذا يحدث:

    أتمنى أن تكون طريقة تنفيذ الـ while loop قد اتضحت من الشكل السابق.

     

    نقطة توقّف..

    • لاحظ أننا قمنا بتغيير قيمة (i) داخل جملة while و زيادتها. و هكذا هي جاهزة للمقارنة من جديد، و لو لم نقم بذلك، ستظل الجملة صحيحة، و سيظل البرنامج ينفذ الأوامر.
    • إذا لم يتحقق الشرط في جملة while فلن يتم تنفيذ الأوامر داخل الجملة أبداً.

     

    do ..while loop:

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

    تكتب جملة do..while هكذا:

     

    يمكنك تطبيق الأمثلة في الجمل السابقة على هذه الجملة.

     

    وهكذا نكون قد غطينا أوامر التكرار في لغة الجافا بأنواعها الثلاثة. أرجو أن يكون الدرس واضحاً :-)

     

    do {
         Statement 1;
         Statement 2;
         ..

    } while( condition )

     

     

    while( condition ) {
         Statement 1;
         Statement 2;
         ..

    }

     

    مقدّمة:

    لنفترض أننا نرغب في طباعة الجملة "I am a muslim" أربع مرات. طبعاً ستقولون أنه يمكننا أن نكتب البرنامج التالي و سيقوم بالمطلوب:

    فعلاً هذا صحيح، البرنامج يكتب الجملة 4 مرات، و لكن لاحظ معي البرنامج مرة أخرى، ستجد أننا قمنا بكتابة الأمر  أربع مرات. و هذا قد يكون حلاً مناسباً لأن عدد مرات التكرار كان 4، و لكن لنتصور أننا نريد أن نطبع الجملة 100 مرة أو ربما 1000 مرة. أو ربما نرغب في تكرارها عدداً من المرات يعتمد على تحقيق شرط معين. بالطبع لابد لنا عندها أن نستخدم أدوات التحكم التي تقوم بتكرار الأوامر. و توفّر لك لغة جافا ثلاث طرق لتكرار الأوامر. سنتعرّف عليها فيما يلي :-)

     

    for loop:

    نستخدم هذا النوع من التكرار حين تكون عدد مرات التكرار محددة و معروفة. مثلاً. أي أنني أعرف مسبقاً عدد المرات التي سأقوم بتكرار الأوامر على عددها. في الحالة التي كانت في المقدّمة. نعرف أن عدد مرات التكرار كان 4.

    يكتب كود الـ for loop على هذا الشكل:

     

    for( initialization ; condition ; increment) {
                Statement 1;
                ..

    }


    كلمات مفتاحية  :
    أوامر التحكم التكرار دروس جافا

    تعليقات الزوار ()