28 - سلسلة تبسيط البرمجة – برنامج الحلقة غير المحدودة Until
السلام عليكم ورحمة الله وبركاته
بسم الله الرحمن الرحيم
سبق وذكرنا في الدرس
11 - سلسلة تبسيط البرمجة – آلية الحلقات التكرارية غير المحددة
أنه يوجد نوعين للحلقات غير المحددة
الأولى تتحقق من الشرط في البداية أي قبل دخول الحلقة
والثانية تتحقق من الشرط في نهاية جسم الحلقة أي بعد أن تنتهي من تنفيذ الحلقة لمرة واحدة على الأقل ثم تتحقق من الشرط فإما أن تكرر وإما أن تخرج
المثال العملي الذي طبقناه في الدرس السابق كان للنوع الأول
وهذا نسميه حلقة
Do While
Loop
أي طالما كذا كرر
أما النوع الثاني يدعى حلقة
Do
Loop While
أي كرر طالما كذا
والفرق بينهما واضح أن الأولى تتحقق من الشرط في البداية
أما الثانية تتحق في النهاية والفرق الجوهري أن الأولى قد لا تنفذ جسم الحلقة مطلقا أي ربما يكون من البداية الشرط غير متحقق وبالتالي سيقفز إلى ما بعد الحلقة
أما الثانية فستنفذ جسم الحلقة مرة واحدة على الأقل من ثم تتحقق من الشرط لأول مرة فإما أن تعاود وإما أن تخرج
ولو رجعنا للمثال النظري في الرابط المذكور أعلاه لعرفنا ذلك من خلال الفرق بين المثالين
أود أن أنوه أن اللغة تسمح بحلقة شبيهة بالحالتين باستخدام كلمة Until بدلا من While
والفرق أن حلقات While تكرر جسم الحلقة في حال كان نتيجة الشرط المنطقية هي صح True أي عندما يكون الشرط متحقق
أما حلقات
Do Until
Loop
و
Do
Loop Until
فهي تكرر في حالة كانت النتيجة المنطقية للشرط خطأ أي False أي عندما لا يكون الشرط متحقق ومتى تحقق تخرج من الحلقة
المثال التالي يبين أنواع الحلقات ونلاحظ كيف أن الأولى لا تطبع شيء بينما الثانية تطبع مرة على الأقل علما أنهما نفس الشرط والبداية إلا أن الفرق هو كون فحص الشرط في الأول أو في الآخير
وكذلك الفرق بين وايل وأنتيل هو في الشرط :
Module Module1
Sub Main()
Dim i As Integer
Console.WriteLine("Do While .. Loop -----")
i = 0
Do While i > 0
Console.WriteLine(i)
i = i + 1
Loop
Console.WriteLine("----------------------")
Console.WriteLine()
Console.ReadLine()
Console.WriteLine("Do .. Loop While -----")
i = 0
Do
Console.WriteLine(i)
i = i + 1
Loop While i < 0
Console.WriteLine("----------------------")
Console.WriteLine()
Console.ReadLine()
Console.WriteLine("Do Until .. Loop -----")
i = 0
Do Until i >= 0
Console.WriteLine(i)
i = i + 1
Loop
Console.WriteLine("----------------------")
Console.WriteLine()
Console.ReadLine()
Console.WriteLine("Do .. Loop Until -----")
i = 0
Do
Console.WriteLine(i)
i = i + 1
Loop Until i >= 0
Console.WriteLine("----------------------")
Console.WriteLine()
Console.ReadLine()
End Sub
End Module
الواجب :
لو أمكن تحويل المثالين في الدرس
11 - سلسلة تبسيط البرمجة – آلية الحلقات التكرارية غير المحددة
إلى برنامج عملي
ودمتم بخير
التعليقات