admin
المدير العام
عدد المساهمات : 1578 الجنس : تاريخ التسجيل : 27/06/2008
| موضوع: 17-قواعد الفيجوال - الجزء الرابع السبت 19 يونيو 2010, 4:22 pm | |
| Do …….Loop While الامر Do…….Loop While يعمل كالامر Do While………Loopمع اختلاف بسيط وهو ان الشرط يتم تقيمه بعد نهايه كل تكرار وليس قبل بدايتهويؤدي ذلك الي ان الاوامر التي ستكرر ستنفذ مرة واحده علي الاقل قبل التحقق من الشرط بعكس Do While……..Loopفالاوامر لن تنفذ ابدا الا بعد التحقق من الشرط اولا والشكل العام : - اقتباس :
- Do
………… Code ………. Loop While Condition
لنأخذ مثالا علي ذلكنفرض اننا نجعل المستخدم يقوم بادخال password عند دخوله فورم معين وبدون هذه الباسورد لا يستطيع الدخول نقوم بوضع زر علي الفورم ونكتب بداخله الكود التالي - اقتباس :
- Do
("x = InputBox("Enter PassWord", "Do.........Loop While Loop While x <> 123
وهذا يعني انه سيتم في اول مرة اظهار صندوق الحوار لادخال كلمه السر بدون ان يري الشرط المطلوب سيقزم المستخدم بادخال كلمه السر ولنفرض انها 456ستقوم الحلقه الان برؤيه الشرط اذا كان المدخل من قبل المستخدم هو 123 سيقوم بالدخول واذا لا سيعرض مربع الحوار مرة اخريوهكذا حتي يتم كتابه 123 سيصبح مصرح له بالدخول Do……..Loop Until لا تختلف كثيرا عن سابقتها الا في ما شرحناه في الفروقات سابقا في هذا الجدول والصيغه العامه لها - اقتباس :
- Do
………… Code ………. Loop Until Condition
وسنستخدم نفس المثال السابق - اقتباس :
- Do
("x = InputBox("Enter PassWord", "Do.........Loop Until Loop Until x = 123
فهما جميعا متشابهين عدا الفروقات السابقه المبينه في الجدول For……….Next تعتبر هذه الحلقه من الحلقات التكراريه ايضا ولكن تختلف عن قواعد Do في انها يمكننا فيها تحديد عدد معين من مرات التكرار علي عكس Do التي لا نستطيع ان نحدد عدد التكرار فيهاوالصيغه العامه لها هي - اقتباس :
- For Variable=Start To End Step Increment
……………. ………… Code ……………. …………. Next Variable
Variable = هي متغير لتحديد قيمه التكرار المبدئيهStart = هي نقطه البدايه للحلقه التكراريهEnd = هو نهايه الحلقه التكراريهIncrement = وهي مقدار الزياده في الحلقه التكراريهبالنسبه لــ Step Increment فهي اختياريه يمكنك اضافتها اولاوعند عدم وجودها سيزيد المقدار بقيمه واحد مثال للتوضيحلنفرض اننا نريد اضافه الارقام من 1 الي 10 في ListBox سيكون الكود بالشكل التالي - اقتباس :
- Dim i As Integer
For i = 1 To 10 List1.Additem i Next i
اولا قمنا بتعريف متغير من النوع Integer ثم بدأنا الحلقه التكراريه بوضع رقم 1 في المتغير I وجعلناه القيمه المبدئيه للحلقهوحددنا نهايه الحلقه عند الرقم 10 ثم قمنا بطباعه ناتج هذه الحلقه قم بتشغيل البرنامج ماذا تلاحظ؟تلاحظ انه تم طباعه الاعداد من الرقم 1 الي الرقم 10 علي الفورم مثال اخرنريد هذه المرة ان نقوم بطباعه الاعداد من الرقم 10 الي الرقم 1اري منك الكثير قام بالاجابه نغم سنقوم بعكس البدايه والنهايه للحلقه ولكن لاحظ عند تنفيذك للكود لن يظهر شيئا ولن تتم تنفيذ الحلقه لما لم يتم تنفيذها ؟وذلك لان الحلقه بطبيعتها تقوم بالزياده وليس بالنقصان اذا سنستخدم كلمه Step ونضع بعدها قيمه -1 وذلك لكي يقوك بانقاص 1 في كل مرةاذا الكود سيصبح بهذا الشكل - اقتباس :
- Dim i As Integer
List1.Clear For i = 10 To 1 Step -1 List1.AddItem i Next i
ستلاحظ الان طباعه الارقام من 9 الي 1 بشكل صحيح ولكن ماذا اذا كنا نريد طباعه الارقام الزوجيه بشكل تصاعدي؟سنستخدم ايضا Step ونضع لها القيمه 2انظر لهذا الكود - اقتباس :
- Dim i As Integer
List1.Clear For i = 2 To 10 Step 2 List1.AddItem i Next i
اعتقد ان الان الفكرة وضحت الان لنجرب معا صندوق حوار الباسوورد ونجعل عدد مرات السماح لكلمات المرور الخاطئه هي 3 وبعدها يتم اغلا البرنامج مثلا - اقتباس :
- Dim i As Integer
For i = 1 To 3 ("x = InputBox("Enter PassWord", "For..........Next If x = 123 Then Exit For If i = 3 Then MsgBox "The PassWord Is Wrong .... The Programme "Will End Next i
حددنا ان القيمه المبدئيه للحلقه هي 1 والقيمه النهائيه هي 3اي انه سيتم تنفيذ حلقه التكرار 3 مراتبعد ذلك قمنا باظهار صندوق حوار يطلب كلمه المرور في السطر الذي يليه اخبرناه انه اذا كانت قيمه مريع الحوار هي 123 يتم الخروج من حلقه For عن طريق الامر Exit Forاما اذا اصبحت الحلقه في المرة الاخيرة وهي رقم 3 سيتم اظهار رساله يخبرة فيها ان جميع كلمات المرور التي ادخلتها خاطئه وسيتم اغلاق البرنامج اعتقد ان هذه المرة اصبح حوار كلمه المرور اكثر مرونه من الاخر الذ استخدمنا فيه الحلقه Do | |
|
نور الدين
نائب المدير
عدد المساهمات : 5431 الجنس : تاريخ التسجيل : 26/04/2010
| موضوع: رد: 17-قواعد الفيجوال - الجزء الرابع الخميس 19 أغسطس 2010, 3:36 am | |
| | |
|