امثله على الحلقات التكرارية For-Next في الفيجول بيسك 10


الحلقات التكرارية هي عبارة عن حلقات تقوم بتنفيذ الكود عدد معين من المرات حيث يتم تحديد نقطة البداية ونقطة النهاية ومقدار الخطوة فيها.

للحلقات التكرارية عدة أنواع منها For Each-Next, While-End While, Do-Loop, For-Next وسنشرح بالتفصيل الحلقة التكرارية الأولى فقط.



* الحلقة التكرارية For-Next:

تكتب بالصيغة التالية:

For i=0 To 100

Next

حيث أن i هو عبارة عن متغير يبدأ بالقيمة 0 وينتهي بالقيمة 100 ويجب أن تنتهي الFor بالكلمة Next وتكتب التعليمات المراد تكرارها داخل الحلقة أي بين For و Next والتليمات هنا تتكر 101 مرة لأننا بدأنا الحلقة بالرقم 0 وفي كل مرة تزداد قيمة i بمقدار 1 لتصل لنهاية الحلقة أي إلى الرقم 100.

مثال1: إذا أردنا إظهار الأعداد من 0 وحتى 10 داخل رسالة نكتب الكود التالي:

For i = 0 To 10
            MessageBox.Show (i)

        Next



في هذا المثال ستبدأ i بقيمة صفر وسيتم تنفيذ تعليمة إظهار الرسالة وإظهار قيمة i ثم ستزداد قيمة i بمقدار 1 وتنفيذ تعليمة الرسالة مرة أخرى وهكذا حتى تصبح قيمة i تساوي 10 وبعدها سيتم الخروج من الحلقة.



ملاحظة: لو أردنا كسر الحلقة في المثال السابق عند الوصول للرقم 5 نستخدم Exit For وكسر الحلقة يعني الخروج من الحلقة حتى لو لم تصل لنهاية الحلقة حيث يكتب الكود بالطريقة التالية:

For i = 0 To 10
            MessageBox.Show(I)
            If i = 5 Then
                Exit For
            End If
        Next



في هذا الكود ستبدأ الحلقة من الرقم 0 وإظهار الرسالة وفي كل مرة سيتم التحقق من قيمة i إذا كانت تساوي 5 فإذا كان الشرط محقق سيتم تنفيذ تعليمة Exit For  والخروج من الحلقة دون الوصول لنهايتها أما إذا لم يكن الشرط محقق سيتم تكرار الكود للوصول لنهاية الحلقة أو عند تحقق الشرط.

ملاحظة: يمكننا تغيير مقدار زيادة i بمقدار 2 بدلا من 1 وذلك لإظهار الأعداد الزوجية فقط وفي هذه الحالة نكتب الكود بالطريقة التالية:

For i = 0 To 10 Step 2
            MessageBox.Show(I)
        Next



حيث استخدمنا التعليمة Step 2 والتي تعني زيادة المقدار بقيمة 2 وهنا ستبدأ الحلقة بقيمة 0 وتزداد في كل مرة بمقدار 2 وسيتم إظهار الأعداد الزوجية فقط و إذا أردنا إظهار الأعداد الفردية فقط نبدأ الحلقة من القيمة 1 بدلا من 0 كما يلي:

For i = 1 To 10 Step 2
            MessageBox.Show(I)
        Next



  

مثال2: اكتب برنامج يقوم بإضافة الأعداد من 0 إلى 10 داخل أداة ListBox.

خطوات تصميم البرنامج:
1- نفتح مشروع جديد ونضع عليه أداة ListBox وزر ونجعل الخصائص للأدوات كما يلي:


اسم الأداة
اسم الخاصية
القيمة
Form1
Text
طباعة الأعداد من 0 إلى 10
Button1
Text
طباعة الأعداد



2- بعد تصميم الفورم نضغط مرتين على زر طباعة الأعداد لكتابة الكود الخاص به كما يلي:

Private Sub Button1_Click (ByVal sender As System.Object, ByVale As System.EventArgs) Handles Button1.Click

Dim i As Integer
ListBox1.Items.Clear ()
For i= 0 To 10
ListBox1.Items.Add (I)
Next
End Sub



نقوم أولا بتعريف متغير اسمه i ونوعه عدد صحيح ثم نمسح محتويات القائمة ListBox في كل مرة حتى لا يتم تكرار طباعة الأعداد أثناء الضغط على الزر أكثر من مرة وبعدها نستخدم حلقة For تبدأ من القيمة i=0 وتنتهي بالقيمة i=10 وعند كل دورة للحلقة يتم إضافة قيمة المتغير i للقائمة ListBox .



مثال 2: اكتب برنامج يقوم بإضافة الأعداد الزوجية من 0إلى100 داخل أداة ListBox1 و الأعداد الفردية من 0 إلى 100 داخل أداة ListBox1 2.

خطوات تصميم البرنامج:

1- نفتح مشروع جديد ونضع عليه أداتي ListBox وأداتي Label وزر ونجعل الخصائص للأدوات كما يلي:


 

اسم الأداة
اسم الخاصية
القيمة
Form1
Text
الأعداد الزوجية والفردية
Label1
Text
الأعداد الزوجية
Label2
Text
الأعداد الفردية
Button
Text
طباعة الأعداد

2- بعد تصميم الفورم نضغط مرتين على زر طباعة الأعداد لكتابة الكود الخاص به كما يلي:
Private Sub Button1_Click (ByVal sender As System.Object, ByVale As System.EventArgs) Handles Button1.Click
 Dim i as Integer
ListBox1.Items.Clear ()
ListBox2.Items.Clear ()
 For i= 0 To 100
 If I Mod 2 = 0 Then
 ListBox1.Items.Add (i)
 Else
ListBox2.Items.Add (i)
 End If
 Next
 End Sub

مثال3: اكتب برنامج يقوم بإضافة عدد داخل أداة TextBox ثم يقوم بحساب مضاعفات هذا العدد إلى القيمة 100.
خطوات تصميم البرنامج:
1- نفتح مشروع جديد ونضع عليه أداة ListBox وأداة Label وأداة  TextBoxوزر ونجعل الخصائص للأدوات كما يلي:




اسم الأداة
اسم الخاصية
القيمة
Form1
Text
مضاعفات اللأعداد
Label1
Text
أدخل العدد
TextBox1
TextAlign
Center
Button1
Text
إظهار النتيجة



2- بعد تصميم الفورم نضغط مرتين على زر إظهار النتيجة لكتابة الكود الخاص به كما يلي:

في هذا المثال يوجد طريقتين لكتابة الكود الطريقة الأولى تعتمد على حلقة For فقط ولكن تكون الزيادة للحلقة بمقدار القيمة التي تم إدخالها في أداة TextBox1 أما الطريقة الثانية فتعتمد على حساب باقي القسمة للعدد ويمكننا استخدام أي طريقة نراها مناسبة.



الطريقة الأولى:

Private Sub Button1_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim i as Integer
        ListBox1.Items.Clear ()
        For i = Val (TextBox1.Text) To 100 Step Val (TextBox1.Text)
            ListBox1.Items.Add(I)
        Next
    End Sub



كما ذكرنا سابقا فإن هذه الطريقة تعتمد على الدالة Step الخاصة بالحلقة For حيث أن TextBox1.Text) Step Val ( تعني زيادة حلقة For بمقدار القيمة الموجودة داخل TextBox1 بخلاف الحالة الطبيعية لحلقة For والتي تقوم بالزيادة بمقدار واحد فقط.

Private Sub Button1_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim i as Integer
         ()ListBox1.Items.Clear
        For i = Val (TextBox1.Text) To 100
            If (i Mod Val (TextBox1.Text) = 0) Then
                ListBox1.Items.Add (I)
        Next
    End Sub



في هذه الطريقة لم نستخدم الدالة Step وإنما استخدمنا الدالة Mod لحساب باقي قسمة المتغير i على القيمة التي تم إدخالها في TextBox1 فإذا كان باقي قسمة القيمة للمتغير i يساوي الصفر هذا يعني أن هذه القيمة هي من مضاعفات العدد وبالتالي يتم إضافتها للقائمة ListBox.



مثال4: اكتب برنامج يطبع الأعداد تنازلي من 10- 1 داخل List Box

خطوات تصميم البرنامج:

1-  نفتح مشروع جديد ونضع علي أداة ListBox و زر ونجعل الخصائص للأدوات كما يلي:

اسم الأداة
اسم الخاصية
القيمة
Form1
Text
طباعة الأعداد تنازلي من 10 إلى 1
Button1
Text
طباعة الأعداد



2- بعد تصميم الفورم نضغط مرتين على زر طباعة الأعداد لكتابة الكود الخاص به كما يلي:

Private Sub Button1_Click (By Val sender As System. Object, By Val e as System.EventArgs) Handles Button1.Click

        Dim i as Integer
       () ListBox1.Items.Clear
        For i = 10 To 1 Step -1
            ListBox1.Items.Add (I)
        Next
    End Sub



مثال5: اكتب برنامج يطبع جدول الضرب للرقم 3 من 1-12 داخل ListBox.

خطوات تصميم البرنامج:
1-    نفتح مشروع جديد ونضع عليه أداةList box و زر ونجعل الخصائص للأدوات كما يلي:


اسم الأداة
اسم الخاصية
القيمة
Form1
Text
طباعة جدول الضرب للرقم 3 من 1-12
Button1
Text
طباعة الأعداد



2- بعد تصميم الفورم نضغط مرتين على زر طباعة الأعداد لكتابة الكود الخاص به كما يلي:

Private Sub Button1_Click (By Val sender As System. Object, By Val e As System.EventArgs) Handles Button1.Click

        Dim x As Integer
       () ListBox1.Items.Clear
        For x = 1 To 12 Step 1
            ListBox1.Items.Add(x & "*" & "3" & "=" & x * 3)
        Next
    End Sub





مثال6: اكتب برنامج يطبع النجوم من 1- 5 داخل TextBox

خطوات تصميم البرنامج:
1- نفتح مشروع جديد ونضع عليه أداةTextbox و زر ونجعل الخصائص للأدوات كما يلي:


اسم الأداة
اسم الخاصية
القيمة
Form1
Text
طباعة النجوم من 1-5
Button1
Text
طباعة النجوم



2- بعد تصميم الفورم نضغط مرتين على زر طباعة النجوم لكتابة الكود الخاص به كما يلي:

Private Sub Button1_Click (By Val sender As System.Object, By Val e As System.EventArgs) Handles Button1.Click

        Dim i, j, f As Integer
        Dim x1, x2 As String
        For i = 1 To 5
           ""= x1
            ""=x2
            For f = 1 To i
            "" + x1 =   x1
            Next f
            For j = 1 To i
               "*"+ x2 = x2
            Next j
            TextBox1.AppendText(x1 + x2 + newline)
        Next i
    End Sub





مثال7: اكتب برنامج يعكس حروف أسمك داخل TextBox

خطوات تصميم البرنامج:

1-   نفتح مشروع جديد ونضع عليه أداة   Textboxو زر ونجعل الخصائص للأدوات كما يلي:



اسم الأداة
اسم الخاصية
القيمة
Form1
Text
طباعة الأسم معكوس من اليسار إلى اليمين
Button1
Text
طباعة الأسم

2- بعد تصميم الفورم نضغط مرتين على زر طباعة الأسم لكتابة الكود الخاص به كما يلي:
    Private Sub Button1_Click (By Val sender As System. Object, By Val e As System.EventArgs) Handles Button1.Click
        Dim counter As Integer
        Dim word1, reveseword As String
        word1 = TextBox1.Text
       ""= reveseword
        For counter = word1.Length To 1 Step -1
            reveseword &= Mid(word1, counter, 1)
        Next
        TextBox2.Text = reveseword
    End Sub