ContinueLoop الكلمة
هذي الكلمة المحجوزة تقوم بإعادة الحلقة
الحلقة while تبدأ بالكملة المحجوزة while والشرط الخاص بالحلقة
وتنتهي بWEnd
حنا نعرف إنه عند تحقق الشرط ينفذ مابداخل الحلقة .. حتى يصل لWEnd
ويرجع يختبر الشرط مره أخرى وهكذا..
العبارةContinueLoop إذا إستخدمتها عندها تقوم بتجاهل ماتحتها من أوامر وتعود تختبر الشرط مره أخرى قبل أن تصل لWEnd
الصيغة العامة/
مابين الاقواس [level] غير هام إلا في حالات ويعني مستوى الاعادة ..
وقيمته الافتراضية 1 وتعني الحلقة الحالية
أولاً جرب هذا المثال ..
كود:
$var = 0
While ($var < 15 )
$var = $var + 1
ContinueLoop
MsgBox(0,"",$var)
WEnd
المسج بوكس ماراح تضهر لماذا؟؟ لأنه ماوصل لها أصلاً.
فالاوامر تنفذ حتى ContinueLoop وتعاد الحلقة
جرب إحذف الكلمة ContinueLoop !!
طيب إيش الفايدة من وضع أمر لن ينفذ ؟؟
في الحقيقة مافي أحد يستخدم ContinueLoop بالطريقة هذي هي تستخدم مع الشروط ..
جرب هذا الان
كود:
$var = 0
$msg = ""
While ($var < 15 )
$var = $var + 1
if $var = 9 then
ContinueLoop
endif
$msg = $msg & $var & @crlf
MsgBox(0,"",$msg)
WEnd
راح تكون المخرجات هكذا
ماضهر الرقم 9
إيش السبب رغم إن الزيادة .. كانت قبلContinueLoop
السبب في إضافتها للمتغير لم تتم إضافة الرقم 9$msg
نفس المثال بس غيرنا مكان العمليات ...
كود:
$var = 0
$msg = ""
While ($var < 15 )
$var = $var + 1
$msg = $msg & $var & @crlf
if $var = 9 then
ContinueLoop
endif
MsgBox(0,"",$msg)
WEnd
المخرجات /
ألي جرب المثال وركز في ألي يصير
بيلاحظ إن 9/10 ضهرو في دورة واحدة
السبب في الدورة9 لم يضهر شيء ..
في الدورة 10 المتغير $msg كان يحمل القيم من 1 إلى 10من ضمنها 9 وأضهرها ...
للتأكد أضف بعد إنتهاء الحلقةmsgbox
كود:
$var = 0
$msg = ""
While ($var < 15 )
$var = $var + 1
$msg = $msg & $var & @crlf
if $var = 9 then
ContinueLoop
endif
MsgBox(0,"",$msg)
WEnd
MsgBox(0,"","msg = " & @crlf & $msg)
للحديث بقية في هذا الموضوع :d: