منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : صنع جميع الحلقات التكرارية يدوياً عن طريق GoTo
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
بسم الله الرحمن الرحيم
السلام عليكم و رحمة الله و بركاته

اليوم إن شاء الله سأشرح كيفية أستخدام الدالة GoTo
[SIZE=2]أنت تقول الآن:ألم يقل حلقات تكرارية ؟!
[/SIZE]
:confused:
[SIZE=2] سأرد و أقول الحلقات التكرارية هي المثال [/SIZE]:p
[SIZE=2]
[SIZE=4]فالنبدأ على بركة الله
[/SIZE]
[/SIZE]
Smile
[SIZE=2][SIZE=4]

طبعاً كل من يحب أن يقرأ الدوال و الإجراءات من محرر أكواد الـVB.Net فبالتأكيد صادفته داله (أو Statement ترجمها كما تشاء) أسمها GoTo و لو جربت كتابتها ستجد طريقة كتابتها في التعليقات(الشرح الصغير للدالة الذي يكتب أسفلها عند كتابتها) أن طريقة كتابتها كالتالي:
[/SIZE]
[/SIZE]
PHP كود :
GoTo <line
فتفرح و تقول إذاً لو كتبت GoTo و بجانبها رقم السطر سيذهب الكود عند السطر المكتوب بجانبها
ثم تجربها و تصدم بأنه يوجد خطأ
Sad بالنص التالي: Label '#' is not defined
فيأتي في ذهنك: ما علاقة الـSystem.Windows.Forms.Label بالموضوع؟!!
:confused:
تماماً، ليس لها علاقة لكن الـSystem.Windows.Forms.Label شئ و الـLabel المقصودة هنا شئ آخر Smile

و هنا نأتي لـ "كيف أستخدم GoTo ؟"
الأمر أبسط من البساطة؛ فقط ضع قبل السطر الذي تريد الذهاب إليه:
PHP كود :
LabelName
حيث LabelName هو أي أسم أنت تختاره (و لا توجد قواعد لكتابة أسم الـLabel سوى عدم أستخدام الأسماء المحجوزة في الـVB.Net) Smile

مثال: جرب أن تكتب في الحدث Form_Load الكود التالي:
PHP كود :
Exit Sub
        MsgBox
("Done!"
بالتأكيد لم تظهر الرسالة و الآن أستبدل الكود السابق بالكود التالي:
PHP كود :
GoTo 1
        
Exit Sub
1
:      MsgBox("Done!"

بالتأكيد ظهرت الرسالة

ملاحظة: الدالة GoTo مداها قصير أي لا يمكن أستخدام GoTo من دالة إلى Label من دالة أخرى أي أن كل دالة/إجراء/ حدث له مجموعة الـLabels الخاصة به و لا يمكن أستخدامها مع دالة/إجراء/حدث آخر (أي باللهجة المصرية: كل فانكشن ليه جوتوهاتو)

و الآن حاول على حسب ما فهمت من السابق أن تصنع حلقة تكرارية كـDo Until (فقط حاول فأنت المستفيد
Smile)





[SIZE=2](أتمنى أن تكون نجحت)
[SIZE=4]و الآن لنختبر ما إذا كنت قد نجحت أم لا
[/SIZE]
[/SIZE]
Smile
[SIZE=2][SIZE=4] مثال بسيط عن الحلقة التكرارية Do Until
الكود التالي للحلقة التكرارية Do Until بستخدام GoTo
[/SIZE]
[/SIZE]
PHP كود :
Dim A As Integer 0
Repeat
: If 50 Then
            MsgBox
("Done!" vbCrLf A.ToString)
        Else
            
+= 1
            
GoTo Repeat
        End 
If 
[SIZE=2][SIZE=4]
يمثل الكود التالي للحلقة التكرارية Do Until الحقيقية
[/SIZE]
[/SIZE]
PHP كود :
Dim A As Integer 0
        
Do Until A 50
            A 
+= 1
            
If 50 Then
                MsgBox
("Done!" vbCrLf A.ToString)
            
End If
        
Loop 
و لو تلاحظوا أن في كلا الكودين عدد الأسطر هو سبعة أسطر Smile
أعتقد الآن أن الأمور أتضحت بالنسبة لبقية الحلقات التكرارية Smile
الأمثلة التالية ستكون على النحو التالي:
مثال#: [أسم الحلقة التكرارية]
[الكود بأستخدام GoTo]
"تمثل"
[الكود الحقيقي]
__________

:::الأمثلة:::
مثال1: For
PHP كود :
Dim _Start As Integer 50
        Dim _End 
As Integer 200
Repeat
ListBox1.Items.Add(_Start.ToString)
        
_Start += 10
        
If Not _Start _End Then
            
GoTo Repeat
        
Else
            
ListBox1.Items.Add(_Start.ToString)
            
_Start += 10
        End 
If 
تمثل
PHP كود :
For As Integer 50 To 200 Step 10
            ListBox1
.Items.Add(I.ToString)
        
Next 
__________

مثال2: Do
PHP كود :
Repeat: If Not ListBox1.Items.Count 50 Then
            ListBox1
.Items.Add("50")
            GoTo 
Repeat
        End 
If 
تمثل
PHP كود :
Do
            
ListBox1.Items.Add("50")
            If 
ListBox1.Items.Count 50 Then
                
Exit Do
            
End If
        
Loop 
__________

مثال3: Do While
PHP كود :
Dim A As Integer 0
Repeat
: If 50 Then
            A 
+= 1
            
GoTo Repeat
        
Else
            
MsgBox("Done!" vbCrLf A.ToString)
        
End If 
يمثل
PHP كود :
Dim A As Integer 0
        
Do While 50
            A 
+= 1
            
If Not A 50 Then
                MsgBox
("Done!" vbCrLf A.ToString)
            
End If
        
Loop 
__________

و ها قد أنتهينا اليوم
Smile
الأمثلة الثلاثة موجودة بالمرفقات

و السلام عليكم و رحمة الله و بركاته
SmileSmile