Quick Table of Contents
[تحسين] الحلقات loops
إذا كنت تريد أن تكتب برنامجا يطبع على الشاشة الأرقام من 1 إلى 100 بدون إستخدام الحلقات loops ليس هناك طريقة غير أنك تكتب المئة
رقم داخل الدالة التي تنفذ أمر الطباعه أي سيكون هكذا:
document.write("1 </br>") document.write("2 </br>") document.write("3 </br>") document.write("4 </br>") document.write("5 </br>") وهكذا تظل تكرر الكود حتى تصل للمئة بعد عمر طويل!! ... document.write("100 </br>")و بالطبع لا يمكن أن تكون البرمجة شيئا مملا و عقيما هكذا . إن كنت تريد أن تكتب برنامجا يطبع على الشاشة 100 رقم فيمكنك بإستخدام الحلقات loops أن تكتب برنامج من سطرين يقوم بهذه المهمة .فما هي بالضبط الحلقات؟ هي أداة أو بناء (أي مجموعة كلمات وعلامات) تمكنك من تكرار أمر معين أو مجموعة من الأوامر موضوعة بين قوسين مجموعة {} عدد من المرات حسب ما تريد أو حسب شروط تقوم بتحديدها وهي في المجمل نوعين
أولا :جملة for . يكون بناء حلقة for هكذا:for ([العملية ]; [الشرط]; [تعريف القيمة الإبتدائية]) الأمر أو مجموعة الأوامر.ولكي يتضح المعنى نوضحه بمثال و ليكن حل المشكلة التي عرضناها أول الدرس أي برنامج يقوم بطباعة الأرقام من واحد لمئة بإستخدام جملة for يكون البرنامج هكذا: for loop
و من خلال المثال يمكننا أن نفهم أن القيمة الإبتدائية هي القيمة التي يبدأ من عندها العد فهنا عرفنا المتغير i ووضعنا فيه القيمة الإبتدائية تساوي 1.
أما الشرط و الذي يوضع بعد فاصلة منقوطة ; من تعريف البداية هو الشرط الذي يستمر تكرار الأوامر مدام هو متحقق فهنا
يستمر التكرار طالما قيمة i أقل من أو تساوي 100.
أما العملية فهي العملية التي يتم إجرائها على المتغير الذي قمنا بتعريف قيمته الإبتدائية بعد كل دورة .
فكود طباعة المئة رقم يتم تنفيذه بهذا الترتيب :
<html> <script type="text/javascript"> for(var i=1;i<=100;i=i+1) { document.write(i+"<br>") } </script> </html> حاول بنفسك »اضغط على "حاول بنفسك" لكى ترى كيف تعمل فى الحقيقة
for loop 2
حاول أنت ان تفهمه و تعدل فيه كتمرين
و يمكن أن نستخدم حلقة for داخل حلقة for أخرى مثل هذا المثال:
<html> <script> var number1 = 1 var number2 = 1 for (var counter = 1; counter <=10 ; counter++) { document.write(number1 + " ") number2 = number2 + number1 number1 = number2 - number1 } </script> </html> حاول بنفسك »اضغط على "حاول بنفسك" لكى ترى كيف تعمل فى الحقيقة for داخل for
تنفذ الحلقة الداخلية كاملة أي ينفذ الأمر الخاص بها 25 مرة في كل دورة من دورات الأولى و بذلك تجد في كل سطر
أفقي 25 نجمة تم رسمهم بالحلقة الداخلية بينما هناك 10 سطور من النجوم تتحكم في عددهم الحلقة الخارجية .
و يمكن أيضا عمل حلقة تعمل دائما ولا تنتهي بهذه الطريقة :
<html> <script> for (var i = 1; i <= 10; i++) { for (var j = 1; j <= 25; j++) { document.write("*") } document.write("<BR>") } </script> </html> حاول بنفسك »اضغط على "حاول بنفسك" لكى ترى كيف تعمل فى الحقيقة for ( ; ; ) الأمر ثانيا :جملة while و هي أبسط من جملة for و تكوينها كالتالي:while (الشرط) { ...statements... }فهي لا تحتاج إلا إلى شرط طالما هو متحقق أي ناتجه true فإن الأمر يستمر في التكرار حتى لا يتحقق الشرط و يصبح الناتج false و يمكن عمل برنامج طباعة المئة رقم بـwhile أيضا هكذا: حلقة while
و يمكن إستخدام أداة تسمى do مع while بهذا الشكل :
<html> <script type="text/javascript"> var i=1 while(i<=100) { document.write(i+"<br>") i=i+1 } </script> </html> حاول بنفسك »اضغط على "حاول بنفسك" لكى ترى كيف تعمل فى الحقيقة do while
و ستلاحظ في المثال أن الشرط (i != 0) غير متحقق من البداية و لكن مع ذلك تم تنفيذ الأمر لمرة واحده
حيث أن جملة Do-While يتم فيها أولا تنفيذ الأمر الموضوع داخلها ثم بعد ذلك اختبار الشرط إن كان صحيحا
تكمل و إن كان خطأ تتوقف و لذلك يتم تنفيذ أمر الطباعة الموجود داخل الحلقة لمرة واحده رغم أن الشرط غير متحقق
<html> <SCRIPT LANGUAGE="javascript"> var i = 0 do { document.write("Testing Do-While loop"); } while(i != 0) </SCRIPT> </html> حاول بنفسك »اضغط على "حاول بنفسك" لكى ترى كيف تعمل فى الحقيقة
6 / نوفمبر / 2011 الساعة 13:33
|