الحلقات التكرارية هي عبارة عن حلقات
تقوم بتنفيذ الكود عدد معين من المرات حيث يتم تحديد نقطة البداية ونقطة النهاية
ومقدار الخطوة فيها.
للحلقات التكرارية عدة أنواع منها 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