تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
درس عن ( Decision Structures (If Statment and selct case)
#1
كاتب الموضوع : جهاد العريقي


بسم الله الرحمن الرحيم

نحتاج كثيرا لتنفيذ اقسام مختلفة من الكود بحسب شرط معين او بالاعتماد على شروط معينة
في أي لغة برمجة توجد اليات تستخدم لانجاز هذة المهام او الشروط مهما اختلف شكلها العام وهذة الاليات هي :


If-Then
وتعتبر اهم انواع التراكيب في لغات البرمجة ولها عدة اشكال واول اشكلهاهو


كود :
[color=#000000][COLOR=#0000bb][/color][color=#007700]If [/color][COLOR=#0000bb]condition Then statement  
[/COLOR][/COLOR]

او الشكل التالي

كود :
[color=#000000][COLOR=#0000bb][/color][color=#007700]If [/color][color=#0000bb]condition Then statement[/color][color=#007700]: [/color][color=#0000bb]statement[/color][color=#007700]: [/color][COLOR=#0000bb]statement  
[/COLOR][/COLOR]



تستخدم الصيغة السابقة عند تحقق شرط معين فان البرنامج يقوم بتنفيذ الكود statement او الجمل بعد Then

لناخذ مثال

كود :
[COLOR=#000000][COLOR=#0000bb]
[/COLOR][color=#007700]If [/color][color=#0000bb]Textbox1[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][color=#dd0000]" Hello"   [/color][COLOR=#0000bb]Then
    Textbox1[/COLOR][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][COLOR=#dd0000]" Hi "
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]If  
[/COLOR][color=#0000bb][/color][/COLOR]

او يمكن كتابة المثال السابق كا الاتي


كود :
[color=#000000][COLOR=#0000bb][/color][color=#007700]If [/color][color=#0000bb]Textbox1[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][color=#dd0000]" Hello"   [/color][color=#0000bb]Then  Textbox1[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][COLOR=#dd0000]" Hi "  
[/COLOR][color=#0000bb][/color][/COLOR]

If Textbox1.Text = " Hello" Then Textbox1.Text = " Hi "

ملاحظة هامة :
لاحظ في المثال السابق لم نكتب End If وذلك لاننا وضعنا الكود مباشرة بعد Then ..


في المثال السابق اذا كان النص الموجود في Textbox هو Hello فإن البرنامج يقوم بعرض النص Hi داخل صندوق النصوص بدلا من Hello ..

الشكل الثاني لهذة العبارة هو

If…Then…Else

هذة الجملةتستخدم في حالة اذا تحقق الشرط فان البرنامج ينفذ الكود قبل Else واذالم يتحقق الشرط فإن البرنامج ينفذ الكود التابع للعبارة Else .

الشكل العام لها



كود :
[COLOR=#000000][COLOR=#0000bb]
[/COLOR][color=#007700]If [/color][COLOR=#0000bb]condition Then
    statementblock1
[/COLOR][COLOR=#007700]Else
   [/COLOR][COLOR=#0000bb]statementblock2
End [/COLOR][COLOR=#007700]If  
[/COLOR][color=#0000bb][/color][/COLOR]

لناخذ مثال على هذا النوع..


كود :
[COLOR=#000000][COLOR=#0000bb]
[/COLOR][color=#007700]If [/color][color=#0000bb]MyAge [/color][color=#007700]> [/color][COLOR=#0000bb]21 then
Textbox1[/COLOR][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][COLOR=#dd0000]"come on in"
[/COLOR][COLOR=#007700]Else
[/COLOR][color=#0000bb]Textbox1[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][COLOR=#dd0000]"Sorry, you are not old enough to enter"
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]If  
[/COLOR][color=#0000bb][/color][/COLOR]

او يمكن ان يكون الشكل السابق بهذا الشكل ..


كود :
[color=#000000][COLOR=#0000bb][/color][color=#007700]If [/color][COLOR=#0000bb]condition1 Then
     statementblock1
[/COLOR][color=#007700]ElseIf [/color][COLOR=#0000bb]condition2 Then
    statementblock2
[/COLOR][color=#007700]ElseIf [/color][COLOR=#0000bb]condition3 Then
   statementblock3
[/COLOR][COLOR=#007700]Else
   [/COLOR][COLOR=#0000bb]statementblock4
End [/COLOR][COLOR=#007700]If  
[/COLOR][color=#0000bb][/color][/COLOR]


الشكل السابق يستخدم لفحص اكثر من شرط أي انة اذا لم يتحقق condition1 فان البرنامج ينتقل لفحص condition2 اذا كان محقق للشرط فان البرنامج ينفذ statementblock2 واذا لم يتحقق الشرط فان البرنامج ينتقل لفحص condition3 وهكذا ... اذا لم يتحقق احدى الشروط السابقة فان البرنامج ينفذ statementblock4..

لناخذ مثال على هذا الشكل


كود :
[COLOR=#000000][COLOR=#0000bb]
score [/COLOR][color=#007700]= [/color][color=#0000bb]InputBox[/color][color=#007700]([/color][color=#0000bb]“Enter score”[/color][COLOR=#007700])
If [/COLOR][color=#0000bb]score [/color][color=#007700]< [/color][COLOR=#0000bb]50 Then
        Result [/COLOR][color=#007700]= [/color][COLOR=#0000bb]“Failed”
[/COLOR][color=#007700]ElseIf [/color][color=#0000bb]score [/color][color=#007700]< [/color][COLOR=#0000bb]75 Then
      Result [/COLOR][color=#007700]= [/color][COLOR=#0000bb]“Pass”
[/COLOR][color=#007700]ElseIf [/color][color=#0000bb]score [/color][color=#007700]< [/color][COLOR=#0000bb]90 Then
     Result [/COLOR][color=#007700]= [/color][COLOR=#0000bb]“Very Good”
[/COLOR][COLOR=#007700]Else
     [/COLOR][color=#0000bb]Result [/color][color=#007700]= [/color][COLOR=#0000bb]“Excellent”
End [/COLOR][COLOR=#007700]If
[/COLOR][COLOR=#0000bb]MsgBox Result  
[/COLOR][/COLOR]

ملاحظة هامة :

في الشكل السابق استخدمنا End If واحدة فقط لانهاء الشرط ... فلايمكن استخدام اكثر من End If في الشكل السابق..


Select Case :


تستخدم هذة العبارة عندما نريد ان نفحص اكثر من شرط كما في العبارة If condition1 Then statementblock1 ElseIf condition2 Then غير ان في الشكل السابق عند استخدامنا جملة If … Then… ElseIf فان المشروع قد يصبح شديد التعقيد

ولهذا الغرض نستخدم Select Calse

شكلها العام


كود :
[color=#000000][COLOR=#0000bb]Select [/color][color=#007700]Case [/color][COLOR=#0000bb]expression
[/COLOR][color=#007700]Case [/color][COLOR=#0000bb]value1
statementblock1
[/COLOR][color=#007700]Case [/color][COLOR=#0000bb]value2
statementblock2
[/COLOR][COLOR=#007700].
.
.
Case Else
[/COLOR][COLOR=#0000bb]statementblockN
End Select  
[/COLOR][/COLOR]

لناخذ مثال عن هذه العبارة


كود :
[color=#000000][COLOR=#0000bb]Dim message [/color][color=#007700]As [/color][COLOR=#0000bb]String
Select [/COLOR][color=#007700]Case [/color][color=#0000bb]Now[/color][color=#007700].[/color][COLOR=#0000bb]DayOfWeek
    [/COLOR][color=#007700]Case [/color][color=#0000bb]DayOfWeek[/color][color=#007700].[/color][COLOR=#0000bb]Monday
            message [/COLOR][color=#007700]= [/color][COLOR=#0000bb]“Have a nice week”
    [/COLOR][color=#007700]Case [/color][color=#0000bb]DayOfWeek[/color][color=#007700].[/color][COLOR=#0000bb]Friday
            message [/COLOR][color=#007700]= [/color][COLOR=#0000bb]“Have a nice weekend”
   [/COLOR][COLOR=#007700]Case Else
          [/COLOR][color=#0000bb]message [/color][color=#007700]= [/color][color=#0000bb]“Welcome back[/color][color=#007700]![/color][COLOR=#0000bb]”
End Select
MsgBox[/COLOR][color=#007700]([/color][color=#0000bb]message[/color][COLOR=#007700])  
[/COLOR][color=#0000bb][/color][/COLOR]

في هذا المثال تقوم العبارة Select Case بفحص ايام(الايوم الحالي من ايام الاسبوع) الاسبوع فإن كان اهو Monday فإن البرنامج يقوم بعرض الرسالة “Have a nice week”
وان كان اليوم Friday فإن البرنامج يقوم بعرض الرسالة “Have a nice weekend” ...
والا فان البرنامج يقوم بعرض الرسالة “Welcome back!” ..

او يمكن ان نستخدم الكود الاتي


كود :
[color=#000000][COLOR=#0000bb]Select [/color][color=#007700]Case [/color][color=#0000bb]Now[/color][color=#007700].[/color][COLOR=#0000bb]DayOfWeek

      [/COLOR][color=#007700]Case [/color][color=#0000bb]DayOfWeek[/color][color=#007700].[/color][COLOR=#0000bb]Monday
              message [/COLOR][color=#007700]= [/color][COLOR=#0000bb]“Have a nice week”

     [/COLOR][color=#007700]Case [/color][color=#0000bb]DayOfWeek[/color][color=#007700].[/color][color=#0000bb]Tuesday[/color][color=#007700], [/color][color=#0000bb]DayOfWeek[/color][color=#007700].[/color][color=#0000bb]Wednesday[/color][color=#007700], [/color][COLOR=#0000bb]_
         DayOfWeek[/COLOR][color=#007700].[/color][color=#0000bb]Thursday[/color][color=#007700], [/color][color=#0000bb]DayOfWeek[/color][color=#007700].[/color][COLOR=#0000bb]Friday
message [/COLOR][color=#007700]= [/color][color=#0000bb]“Welcome back[/color][color=#007700]![/color][COLOR=#0000bb]”

     [/COLOR][color=#007700]Case [/color][color=#0000bb]DayOfWeek[/color][color=#007700].[/color][color=#0000bb]Friday[/color][color=#007700], [/color][color=#0000bb]DayOfWeek[/color][color=#007700].[/color][color=#0000bb]Saturday[/color][color=#007700], [/color][color=#0000bb]DayOfWeek[/color][color=#007700].[/color][COLOR=#0000bb]Sunday
message [/COLOR][color=#007700]= [/color][color=#0000bb]“Have a nice weekend[/color][color=#007700]![/color][COLOR=#0000bb]”

End Select
MsgBox[/COLOR][color=#007700]([/color][color=#0000bb]message[/color][COLOR=#007700])  
[/COLOR][color=#0000bb][/color][/COLOR]

لاحظ الشكل السابق مختلف بعض الشيء عن الكود في المثال السابق في Case رقم 2 و Case رقم 3.
فالعبارتين السابقتين تقومان بفحص اكثر من قيمة وفي حالة تحقق احداهذة القيم يتم تنفيذ
Message الخاص بهذة العبارة..

يمكن ايضاء المقارنة او كتابة الكود السابيق عن باستخدام If كا الاتي:


كود :
[color=#000000][COLOR=#0000bb][/color][color=#007700]If [/color][color=#0000bb]Now[/color][color=#007700].[/color][color=#0000bb]DayOfWeek [/color][color=#007700]= [/color][color=#0000bb]DayOfWeek[/color][color=#007700].[/color][COLOR=#0000bb]Monday Then
     message [/COLOR][color=#007700]= [/color][COLOR=#0000bb]“Have a nice week”
[/COLOR][COLOR=#007700]Else
     If [/COLOR][color=#0000bb]Now[/color][color=#007700].[/color][color=#0000bb]DayOfWeek [/color][color=#007700]>= [/color][color=#0000bb]DayOfWeek[/color][color=#007700].[/color][color=#0000bb]Tuesday [/color][color=#007700]And [/color][COLOR=#0000bb]_
                 Now[/COLOR][color=#007700].[/color][color=#0000bb]DayOfWeek [/color][color=#007700]<= [/color][color=#0000bb]DayOfWeek[/color][color=#007700].[/color][COLOR=#0000bb]Friday Then
         message [/COLOR][color=#007700]= [/color][color=#0000bb]“Welcome back[/color][color=#007700]![/color][COLOR=#0000bb]”
    [/COLOR][COLOR=#007700]Else
        [/COLOR][color=#0000bb]message [/color][color=#007700]= [/color][color=#0000bb]“Have a nice weekend[/color][color=#007700]![/color][COLOR=#0000bb]”
   End [/COLOR][COLOR=#007700]If
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]If

[/COLOR][color=#0000bb]MsgBox[/color][color=#007700]([/color][color=#0000bb]message[/color][COLOR=#007700])  
[/COLOR][color=#0000bb][/color][/COLOR]

لاحظ الفرق ..
}}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم