Have an account? Sign in
Login  Register  Facebook
This Page is Under Construction! - If You Want To Help Please Send your CV - Advanced Web Core (BETA)
[Edit] الحلقات 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
  • حلقة while
و لك واحدة منهم مميزاتها و الأكثر شيوعا هي for

أولا :جملة for .

يكون بناء حلقة for هكذا:
for ([العملية ]; [الشرط]; [تعريف القيمة الإبتدائية])
الأمر أو مجموعة الأوامر.
ولكي يتضح المعنى نوضحه بمثال و ليكن حل المشكلة التي عرضناها أول الدرس أي برنامج يقوم بطباعة الأرقام من واحد لمئة بإستخدام جملة for يكون البرنامج هكذا:
for loop
<html>
  <script type="text/javascript">
    
    for(var i=1;i<=100;i=i+1)
    {
      document.write(i+"<br>")
        }
    
  </script>
  
</html>

Try it yourself »Click on the "Try it yourself" button to see how it works

و من خلال المثال يمكننا أن نفهم أن القيمة الإبتدائية هي القيمة التي يبدأ من عندها العد فهنا عرفنا المتغير i ووضعنا فيه القيمة الإبتدائية تساوي 1. أما الشرط و الذي يوضع بعد فاصلة منقوطة ; من تعريف البداية هو الشرط الذي يستمر تكرار الأوامر مدام هو متحقق فهنا يستمر التكرار طالما قيمة i أقل من أو تساوي 100. أما العملية فهي العملية التي يتم إجرائها على المتغير الذي قمنا بتعريف قيمته الإبتدائية بعد كل دورة . فكود طباعة المئة رقم يتم تنفيذه بهذا الترتيب :
  • يتم اختبار الشرط i<=100 هل هو متحقق ؟
  • إن كان متحقق يتم تنفيذ الأوامر الموجودة داخل الحلقة لمرة
  • ثم يتم تنفيذ العملية و التي هي إضافة 1 إلى المتغير i في مثالنا
  • ثم إعادة الإختبار هل i<=100 ؟
  • و مدام الشرط متحقق يستمر الأمر في التكرار حتى تصبح قيمة i تساوي 101 و عندها عندما يتم إختبار الشرط يكون غير متحقق
  • فتنتهي الدورة ولا يتكرر الأمر ثانية .
و مثال آخر على إستخدام for :
for loop 2
<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>

Try it yourself »Click on the "Try it yourself" button to see how it works

حاول أنت ان تفهمه و تعدل فيه كتمرين و يمكن أن نستخدم حلقة for داخل حلقة for أخرى مثل هذا المثال:
for داخل for
<html>
  
  <script>
    for (var i = 1; i <= 10; i++)
{
for (var j = 1; j <= 25; j++)
{
document.write("*")
}
document.write("<BR>")
}
  </script>
</html>

Try it yourself »Click on the "Try it yourself" button to see how it works

تنفذ الحلقة الداخلية كاملة أي ينفذ الأمر الخاص بها 25 مرة في كل دورة من دورات الأولى و بذلك تجد في كل سطر أفقي 25 نجمة تم رسمهم بالحلقة الداخلية بينما هناك 10 سطور من النجوم تتحكم في عددهم الحلقة الخارجية . و يمكن أيضا عمل حلقة تعمل دائما ولا تنتهي بهذه الطريقة :
for ( ; ; )
الأمر 

ثانيا :جملة while

و هي أبسط من جملة for و تكوينها كالتالي:
while (الشرط)
{
...statements...
}
فهي لا تحتاج إلا إلى شرط طالما هو متحقق أي ناتجه true فإن الأمر يستمر في التكرار حتى لا يتحقق الشرط و يصبح الناتج false و يمكن عمل برنامج طباعة المئة رقم بـwhile أيضا هكذا:
حلقة while
<html>
  <script type="text/javascript">
    var i=1
        
    while(i<=100)
    {
     
      document.write(i+"<br>")
    i=i+1
        }
    
  </script>
  
</html>

Try it yourself »Click on the "Try it yourself" button to see how it works

و يمكن إستخدام أداة تسمى do مع while بهذا الشكل :
do while
<html>
  
  <SCRIPT LANGUAGE="javascript">
    
var i = 0
    
do
  
{
  
document.write("Testing Do-While loop");
  
}
    
while(i != 0)
  
</SCRIPT>
  
</html>

Try it yourself »Click on the "Try it yourself" button to see how it works

و ستلاحظ في المثال أن الشرط (i != 0) غير متحقق من البداية و لكن مع ذلك تم تنفيذ الأمر لمرة واحده حيث أن جملة Do-While يتم فيها أولا تنفيذ الأمر الموضوع داخلها ثم بعد ذلك اختبار الشرط إن كان صحيحا تكمل و إن كان خطأ تتوقف و لذلك يتم تنفيذ أمر الطباعة الموجود داخل الحلقة لمرة واحده رغم أن الشرط غير متحقق
November 6, 2011