الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

If

بدأه ميدو حمادة في 29 يونيو 2009 · 2 رد · 352 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،، أريد أن أعرف كيف أضيف if و ما هو الكود في vb 2005 و شكرا "

#2

وعليكم آلسلام ورحمه الله وبركآته ..

		If x = 10 Then
			MsgBox(" X Equal  10 ")
		Else
			MsgBox(" X NotEqual  10 ")
		End If

سبحآن الله وبحمده .. سبحآن الله العظيم .. ,

#3

جملة الشرط 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، وبالتالي ستكون النتيجة "ناجح" وهي بالطبع نتيجة خاطئة!

لهذا توخّ الدّقّة وأنت تكتب جمل الشرط، حتّى لا تحصل على نتائج غير متوقّعة.

certifiedj.jpg

 

 

Image Hosted by ImageShack.us

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…