السلام عليكــم ورحمـة الله وبركاتــه ،، أريد أن أعرف كيف أضيف if و ما هو الكود في vb 2005 و شكرا "
If
وعليكم آلسلام ورحمه الله وبركآته ..
If x = 10 Then
MsgBox(" X Equal 10 ")
Else
MsgBox(" X NotEqual 10 ")
End Ifسبحآن الله وبحمده .. سبحآن الله العظيم .. ,
جملة الشرط If…Then:
تستطيع أن تختبر حدوث شرط معيّن، فإذا كان صحيحا يتمّ تنفيذ مقطع الشرط، وإن كان خاطئا يقفز التنفيذ إلى جملة نهاية الشرط End If.
ولكن ما هو الشرط؟
الشرط هو أيّ متغيّر منطقي أو أيّ تعبير يعطي نتيجة منطقيّة (True أو False)، مثل:
X > 3
Y < 2 And X = 5 Not( (X+Y = 5) Or (X - Y < 3) )
وكما قلنا آنفا، إذا كان مقطع الشرط جملة واحدة، فلا حاجة بنا إلى جملة نهاية الشرط End if، كالتالي:
If شرط Then جملة
ويمكن تنفيذ أكثر من جملة في سطر واحد، بفصلها بنقطتين قائمتين ":" كالتالي:
If شرط Then جملة: جملة: جملة
مثال:
Dim X As Integer = 3, Y As Integer = 5 If X > Y Then X += 1: Y -= 2 : X /= Y : Y*= X
ويمكن كتابة جملة الشرط السابقة بالطريقة التقليديّة كالتالي:
If X > Y Then X += 1 Y -= 2 X /= Y Y*= X End If
وفي حالة التعامل مع متغيّر منطقيّ، يمكن استخدام جملة الشرط كالتالي:
Dim Check As Boolean = True If Check = True Then Check = False If Check = False Then Exit Sub
ولاختصار الكتابة، يعتبر VB أن قيمة المتغيّر المنطقيّ = True إذا لم يذكر ذلك صراحةً.. بمعنى أنّ الجملة التالية:
If Check Then Check = False
مكافئة تماما للجملة:
If Check = True Then Check = False
جملة الشرط If…Then…Else:
هذه طريقة أخرى لكتابة جمل الشرط، نحتاج إليها إذا أردنا تنفيذ مقطع من الكود لو كان الشرط صحيحا، ومقطع آخر لو كان خاطئا:
If شرط Then
مقطع1.. (وهو ينفذ في حالة تحقّق الشرط).
Else
مقطع2.. (وهو ينفّذ في حالة عدم تحقّق الشرط).
End If
ويمكن التحقّق من أكثر من شرط، فإذا لم يتحقّق أيّ منها يقفز البرنامج لتنفيذ مقطع "ما عدا ذلك" Else، وذلك تبعا للصيغة التالية:
If شرط1 Then
مقطع1 (وهو ينفّذ في حالة تحقّق شرط1)
ElseIf شرط2 Then
مقطع2 (وهو ينفّذ في حالة تحقّق شرط2)
ElseIf شرط3 Then
مقطع3 (وهو ينفّذ في حالة تحقّق شرط3)
Else
مقطع4 (وهو ينفّذ في حالة عدم تحقّق أيّ شرط)
End If
ولا قيود عليك في إضافة العدد الذي تريده من جمل ElseIf.
مثال:
Dim Score As Integer = 83 If score < 50 Then Result = "راسب" ElseIf score < 75 Then Result = "ناجح" ElseIf score < 90 Then Result = "جيد جدا" ' هذا هو المقطع الذي سيتم تنفيذه Else Result = "ممتاز" End If MsgBox (Result) ' ستعرض الرسالة جيد جدا
وتمتاز جملة ElseIf بأنّ VB يختبر الشروط من أعلى لأسفل، وعند نجاح واحد منها لا يختبر باقي الشروط، بل ينفّذ المقطع الخاص بالشرط المتحقّق ثمّ يقفز مباشرة لجملة نهاية الشرط.. لهذا فالمثال السابق أفضل من المثال التالي، مع أنّ كليهما يؤدّي نفس الوظيفة:
If score < 50 Then Result = "راسب" End If If score < 75 And score >= 50 Then Result = "ناجح" End If If score < 90 And score > =75 Then Result = "جيد جدا" End If If score >= 90 Then Result = " ممتاز" End If
ففي هذه الحالة سيتمّ اختبار كلّ الشروط، رغم أنّه من المستحيل حدوث أكثر من واحد منها في نفس الوقت.. هذا بالإضافة للدرجة الأكبر من التعقيد التي اضطررنا لإضافتها للشروط حتّى تعمل بطريقة صحيحة، فمثلا: لكي تكون النتيجة "ناجح" فليس كافيا في هذه الحالة أن يكون الشرط هو:
score < 75
لأنّ المجموع لو كان 40، فسيتحقّق الشرط الأوّل (40 < 50) وستكون النتيجة "راسب"، ولكن عند اختبار الشرط التالي فسيجد VB كذلك أن 40 أصغر من 75، لذلك ستصبح النتيجة "ناجح"!!.. لهذا وجب تعديل الشرط إلى:
score < 75 And score >= 50
واضح تمامًا إذن، أنّ تركيب ElseIf أصغر في الحجم، وأسهل في تصميم الشروط، وأسرع في التنفيذ.
ولكنّ هذا لا يمنع أنك قد تحتاج إلى مجموعة جمل شرط مستقلّة متتالية، وذلك في الحالات التي لا ترتبط فيها الشروط ببعضها، بحيث يمكن حدوث أكثر من شرط منها معا في نفس الوقت.
كما يجب أن تلاحظ أنّ الترتيب هامٌّ جدًّا في تركيب جمل ElseIf.. فلو لخبطت ترتيبها لتصبح كالتالي:
If score < 75 Then Result = "ناجح" ElseIf score < 50 Then Result = "راسب" ElseIf score < 90 Then Result = "جيد جدا" Else Result = "ممتاز" End If
فلن تحصل على نتائج صحيحة.. فمثلا: لو كان المجموع 49، فسيجد VB أنّه أصغر من 75، وبالتالي ستكون النتيجة "ناجح" وهي بالطبع نتيجة خاطئة!
لهذا توخّ الدّقّة وأنت تكتب جمل الشرط، حتّى لا تحصل على نتائج غير متوقّعة.
جملة الشرط If…Then:
تستطيع أن تختبر حدوث شرط معيّن، فإذا كان صحيحا يتمّ تنفيذ مقطع الشرط، وإن كان خاطئا يقفز التنفيذ إلى جملة نهاية الشرط End If.
ولكن ما هو الشرط؟
الشرط هو أيّ متغيّر منطقي أو أيّ تعبير يعطي نتيجة منطقيّة (True أو False)، مثل:
X > 3
Y < 2 And X = 5 Not( (X+Y = 5) Or (X - Y < 3) )
وكما قلنا آنفا، إذا كان مقطع الشرط جملة واحدة، فلا حاجة بنا إلى جملة نهاية الشرط End if، كالتالي:
If شرط Then جملة
ويمكن تنفيذ أكثر من جملة في سطر واحد، بفصلها بنقطتين قائمتين ":" كالتالي:
If شرط Then جملة: جملة: جملة
مثال:
Dim X As Integer = 3, Y As Integer = 5 If X > Y Then X += 1: Y -= 2 : X /= Y : Y*= X
ويمكن كتابة جملة الشرط السابقة بالطريقة التقليديّة كالتالي:
If X > Y Then X += 1 Y -= 2 X /= Y Y*= X End If
وفي حالة التعامل مع متغيّر منطقيّ، يمكن استخدام جملة الشرط كالتالي:
Dim Check As Boolean = True If Check = True Then Check = False If Check = False Then Exit Sub
ولاختصار الكتابة، يعتبر VB أن قيمة المتغيّر المنطقيّ = True إذا لم يذكر ذلك صراحةً.. بمعنى أنّ الجملة التالية:
If Check Then Check = False
مكافئة تماما للجملة:
If Check = True Then Check = False
جملة الشرط If…Then…Else:
هذه طريقة أخرى لكتابة جمل الشرط، نحتاج إليها إذا أردنا تنفيذ مقطع من الكود لو كان الشرط صحيحا، ومقطع آخر لو كان خاطئا:
If شرط Then
مقطع1.. (وهو ينفذ في حالة تحقّق الشرط).
Else
مقطع2.. (وهو ينفّذ في حالة عدم تحقّق الشرط).
End If
ويمكن التحقّق من أكثر من شرط، فإذا لم يتحقّق أيّ منها يقفز البرنامج لتنفيذ مقطع "ما عدا ذلك" Else، وذلك تبعا للصيغة التالية:
If شرط1 Then
مقطع1 (وهو ينفّذ في حالة تحقّق شرط1)
ElseIf شرط2 Then
مقطع2 (وهو ينفّذ في حالة تحقّق شرط2)
ElseIf شرط3 Then
مقطع3 (وهو ينفّذ في حالة تحقّق شرط3)
Else
مقطع4 (وهو ينفّذ في حالة عدم تحقّق أيّ شرط)
End If
ولا قيود عليك في إضافة العدد الذي تريده من جمل ElseIf.
مثال:
Dim Score As Integer = 83 If score < 50 Then Result = "راسب" ElseIf score < 75 Then Result = "ناجح" ElseIf score < 90 Then Result = "جيد جدا" ' هذا هو المقطع الذي سيتم تنفيذه Else Result = "ممتاز" End If MsgBox (Result) ' ستعرض الرسالة جيد جدا
وتمتاز جملة ElseIf بأنّ VB يختبر الشروط من أعلى لأسفل، وعند نجاح واحد منها لا يختبر باقي الشروط، بل ينفّذ المقطع الخاص بالشرط المتحقّق ثمّ يقفز مباشرة لجملة نهاية الشرط.. لهذا فالمثال السابق أفضل من المثال التالي، مع أنّ كليهما يؤدّي نفس الوظيفة:
If score < 50 Then Result = "راسب" End If If score < 75 And score >= 50 Then Result = "ناجح" End If If score < 90 And score > =75 Then Result = "جيد جدا" End If If score >= 90 Then Result = " ممتاز" End If
ففي هذه الحالة سيتمّ اختبار كلّ الشروط، رغم أنّه من المستحيل حدوث أكثر من واحد منها في نفس الوقت.. هذا بالإضافة للدرجة الأكبر من التعقيد التي اضطررنا لإضافتها للشروط حتّى تعمل بطريقة صحيحة، فمثلا: لكي تكون النتيجة "ناجح" فليس كافيا في هذه الحالة أن يكون الشرط هو:
score < 75
لأنّ المجموع لو كان 40، فسيتحقّق الشرط الأوّل (40 < 50) وستكون النتيجة "راسب"، ولكن عند اختبار الشرط التالي فسيجد VB كذلك أن 40 أصغر من 75، لذلك ستصبح النتيجة "ناجح"!!.. لهذا وجب تعديل الشرط إلى:
score < 75 And score >= 50
واضح تمامًا إذن، أنّ تركيب ElseIf أصغر في الحجم، وأسهل في تصميم الشروط، وأسرع في التنفيذ.
ولكنّ هذا لا يمنع أنك قد تحتاج إلى مجموعة جمل شرط مستقلّة متتالية، وذلك في الحالات التي لا ترتبط فيها الشروط ببعضها، بحيث يمكن حدوث أكثر من شرط منها معا في نفس الوقت.
كما يجب أن تلاحظ أنّ الترتيب هامٌّ جدًّا في تركيب جمل ElseIf.. فلو لخبطت ترتيبها لتصبح كالتالي:
If score < 75 Then Result = "ناجح" ElseIf score < 50 Then Result = "راسب" ElseIf score < 90 Then Result = "جيد جدا" Else Result = "ممتاز" End If
فلن تحصل على نتائج صحيحة.. فمثلا: لو كان المجموع 49، فسيجد VB أنّه أصغر من 75، وبالتالي ستكون النتيجة "ناجح" وهي بالطبع نتيجة خاطئة!
لهذا توخّ الدّقّة وأنت تكتب جمل الشرط، حتّى لا تحصل على نتائج غير متوقّعة.

