01-10-12, 06:03 PM
(آخر تعديل لهذه المشاركة : 01-10-12, 06:06 PM {2} بواسطة محمود رغمان.)
كاتب الموضوع : !!! BoriS !!!
السلام عليكم ورحمة الله وبركاتةThe Loops الحلقــات التكرارية ....
الحلقات التكرارية هى حلقات تفيديك فى حــالة تكرار شئ معين بين فكيهـــا
يمكنك vb.net من كتابة المصفوفات بسهولة وباشكال عديدة كما سيأتى سردها ان شاء الله .
الحلقة For ………. Next
كود :
[color=#000000][COLOR=#0000bb]Dom Con [/color][color=#007700]As [/color][COLOR=#0000bb]Integer
[/COLOR][color=#007700]For [/color][color=#0000bb]Con [/color][color=#007700]= [/color][COLOR=#0000bb]1 To 4
Console[/COLOR][color=#007700].[/color][color=#0000bb]writeline [/color][color=#007700]([/color][color=#dd0000]"Boris"[/color][COLOR=#007700])
[/COLOR][COLOR=#0000bb]Next
[/COLOR][/COLOR]
فى الكود السابق قمنا بكتابة مصفوفة عن طريق الكلمة For ………. Next لتقوم بتكرار ما بداخلها.
سيتم الاخراج هنــا أربعة مرات حيث يتم التكرار من بداية الحلقة 1 وليس الذى يليه 2 حتى اخر قيمة اعطيت للمصفوفة.
لديك الكلمة Step التى تمكنك من التحكم فى الزيادة والنقصان للحلقة...
كود :
[color=#000000][COLOR=#007700]For [/color][color=#0000bb]Con [/color][color=#007700]= [/color][COLOR=#0000bb]2 To 10 Step 2
Console[/COLOR][color=#007700].[/color][color=#0000bb]writeline [/color][color=#007700]([/color][color=#dd0000]"Boris"[/color][COLOR=#007700])
[/COLOR][COLOR=#0000bb]Next
كل مرتين سوف يتم التنفيذ
[/COLOR][/COLOR]
يمكنك الخروج من الحلقة التكرارية قبل أنتهائهــا من خلال العبارة Exit For
أى لتكتب شئ مثل
كود :
[COLOR=#000000][COLOR=#0000bb]Module Module1
Sub Main[/COLOR][COLOR=#007700]()
[/COLOR][color=#0000bb]Dim Con [/color][color=#007700]As [/color][COLOR=#0000bb]Integer
[/COLOR][color=#007700]For [/color][color=#0000bb]Con [/color][color=#007700]= [/color][COLOR=#0000bb]1 To 120
[/COLOR][color=#007700]If [/color][color=#0000bb]Con [/color][color=#007700]= [/color][COLOR=#0000bb]32 Then
Console[/COLOR][color=#007700].[/color][color=#0000bb]WriteLine[/color][color=#007700]([/color][color=#0000bb]Con[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Console[/color][color=#007700].[/color][color=#0000bb]Read[/color][COLOR=#007700]()
Exit For
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]If
[/COLOR][COLOR=#0000bb]Next
End Sub
End Module
سيتم طباعة الرقم 32
[/COLOR][/COLOR]
الحلقــــة التكرارية For Each :
حلقة رائعة تستخدم مع المصفوفات مبدئيــا ....
كود :
[COLOR=#000000][COLOR=#0000bb]Module Module1
Sub Main[/COLOR][COLOR=#007700]()
[/COLOR][color=#0000bb]Dim x [/color][color=#007700]As [/color][COLOR=#0000bb]Integer
Dim Y[/COLOR][color=#007700]([/color][color=#0000bb]5[/color][color=#007700]) As [/color][COLOR=#0000bb]Integer
[/COLOR][color=#007700]For [/color][COLOR=#0000bb]Each x In Y
Console[/COLOR][color=#007700].[/color][color=#0000bb]WriteLine[/color][color=#007700]([/color][color=#0000bb]x[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Console[/color][color=#007700].[/color][color=#0000bb]Read[/color][COLOR=#007700]()
[/COLOR][COLOR=#0000bb]Next
End Sub
End Module
[/COLOR][/COLOR]
سيتم طبع ال x ( 5 مرات ) فهى داخل كل Y وال Y تحمل القيمة 5
هذه الحلقة رائعة جدا عند التعامل مع قواعد البيانات فتخيل مثلا
أن Y تحمل Table جدول معين وال x تحمل Row خالى !!!!!!!!!
الحلقة التكرارية DO …. Loop :
هذه الحلقة قوية ومرنة لدرجة كبيرة لتمكنك من فعل شئ مثل ..
كود :
[COLOR=#000000][COLOR=#0000bb]Module Module1
Sub Main[/COLOR][COLOR=#007700]()
[/COLOR][color=#0000bb]Dim x [/color][color=#007700]As [/color][COLOR=#0000bb]Int32
[/COLOR][color=#007700]Do [/color][color=#0000bb]Until x [/color][color=#007700]= [/color][COLOR=#0000bb]1
Console[/COLOR][color=#007700].[/color][color=#0000bb]WriteLine[/color][color=#007700]([/color][color=#0000bb]x[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Console[/color][color=#007700].[/color][color=#0000bb]Read[/color][COLOR=#007700]()
[/COLOR][COLOR=#0000bb]Loop
End Sub
End Module
[/COLOR][/COLOR]
فى المثال السابق سيتم العد حتى يتحقق الشرط وتكون x = 1 وهو عمل الكلمة Until
اى انها سوف تظل تعمل حتى يتحقق الشرط المعطى لها.
كود :
[COLOR=#000000][COLOR=#0000bb]
فلو كتبناها هكذا
Module Module1
Sub Main[/COLOR][COLOR=#007700]()
[/COLOR][color=#0000bb]Dim x [/color][color=#007700]As [/color][COLOR=#0000bb]Int32
[/COLOR][color=#007700]Do [/color][color=#0000bb]Until x [/color][color=#007700]= [/color][COLOR=#0000bb]1
Console[/COLOR][color=#007700].[/color][color=#0000bb]WriteLine[/color][color=#007700]([/color][color=#0000bb]x[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Console[/color][color=#007700].[/color][color=#0000bb]Read[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]x [/color][color=#007700]= [/color][COLOR=#0000bb]1
Loop
End Sub
End Module
[/COLOR][/COLOR]
فلن يتم التنفيذ الا مرة واحدة.
استخدام While
عملها داخل الحلقة كعمل Until ولكنها تقوم بالتكرار مادام الشرط True تحقق
كود :
[COLOR=#000000][COLOR=#0000bb]Module Module1
Sub Main[/COLOR][COLOR=#007700]()
[/COLOR][color=#0000bb]Dim x [/color][color=#007700]As [/color][COLOR=#0000bb]Int32
[/COLOR][color=#007700]Do While [/color][color=#0000bb]x [/color][color=#007700]= [/color][COLOR=#0000bb]1
Console[/COLOR][color=#007700].[/color][color=#0000bb]WriteLine[/color][color=#007700]([/color][color=#0000bb]x[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Console[/color][color=#007700].[/color][color=#0000bb]Read[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]x [/color][color=#007700]= [/color][COLOR=#0000bb]1
Loop
End Sub
End Module
[/COLOR][/COLOR]
يمكنك الخروج من هذه الحلقة بأستخدام Exit Do دون الوصول الى القيمة النهائية لهـا
هذه بعض المفاهيم الاساسية للمبتدئين واعذرونى على ضيق الوقت لعدم الاستفاضة.
السلام عليكم ورحمة الله وبركاتة.