Posted: Wed Feb 23, 2005 4:15 pm Post subject: ساختارهای تصمیم
ساختارهای تصمیم:
به مجموعی ای از دستورالعمل ها که امکان انتخاب و تصمیم گیری از بین یک یا چند موضوع را به ما می دهند ساختار های تصمیم می گویند.
جمله شرطی If :
از If برای تصمیم گیری بین یک یا چند شرط استفاده می شود.
If شرط Then
Vb دستورات مجموعه
End If
و یا
If شرط Then
1 Vb دستورات مجموعه
Else
2 Vb دستورات مجموعه
End If
و یا
If شرط Then دستور
و یا
If شرط Then دستور1 Else دستور 2
در نوع اول اگر شرط درست باشد آنگاه مجموعه دستوراتی که در آن بلاک نوشته شده اجرا می شوند وگرنه هیچ اتفاقی نمی افتد.
در نوع دوم اگر شرط درست باشد آنگاه مجموعه دستورات 1 اجرا می شود و در غیراین صورت مجموعه دستورات 2 اجرا می شوند.
در نوع سوم اگر شرط درست باشد آنگاه فقط تنها یک دستور بعد از Then اجرا می شود وگرنه هیچ اتفاقی نمی افتد.
در نوع چهارم اگر شرط درست باشد آنگاه فقط دستور 1 اجرا می شود در غیر این صورت فقط دستور 2 اجرا می شود.
نکته:
در نوع سوم و چهارم چون بلاکی از دستورات نداریم و فقط یک دستور است به End If احتیاجی نداریم.
مثال:
Dim x As Boolean
If x Then
Text1.Text = "The Value of x is True"
Beep
End If
در این مثال اگر مقدار منطقی متغییر x ارزش درستی داشته باشد آنگاه مجموعه دستورات داخل بلاک انجام می شوند.
یعنی خاصیت متن از شیء جعبه متن برابر آن رشته قرار می گیرد (زیاد نترسید دربرنامه نویسی شیءگرا به این مطلب بیشتر می پردازم.) و سپس کلمه Beep یک صدای بیپ در اسپیکر کامپیو ترتان ایجاد می کند.
نکته:
اگر در vb مقدار منطقی گزاره ای ذکر نشود vb به طور خودکار آن را ارزش درست در نظر می گیرد. پس عملا دستورات زیر با دستورات بالا برابر است:
Dim x As Boolean
If x = True Then
Text1.Text = "The Value of x is True"
Beep
End If
مثال:
Dim Res As Integer
If Res >= 0 Then
Text1.Text = "The number is positive"
Else
Text1.Text = "The number is negative"
End If
در این مثال اگر مقدار متغییر Res بزرگتر یا مساوی صفر باشد رشته "The number is positive" و در غیر این صورت رشته "The number is negative" نوشته می شود.
نکته:
در vb ارزش نادرستی با مقدار صفر وارزش درستی با مقدار یک ( یا مقداری غیر از صفر) نشان داده می شود.
مثال:
If x = Y Then Text1.Text = "Equal"
در این مثال اگر مقدار x و y برابر باشد آنگاه مساوی در جعبه متن نوشته می شود.
مثال:
If a > b Then Max = a Else Max = b
در این مثال اگر a بزرگتر ازb باشد مقدار ماکسیمم برابر a و در غیر این صورت مقدار ماکسیمم برابر b می شود.
ساختار ElseIf
اگر بخواهیم با استفاده از If شرط های گوناگونی را چک کنیم از ElseIf می توان استفاده کرد. البته من این کار را توصیه نمی کنم چون باعث کم شدن خوانایی برنامه ، سردرگمی برنامه نویس و طولانی تر شدن برنامه می شود.
مثال:
معروف ترین مثال ElseIf
If a > 0 Then
Text1.Text = "positive"
ElseIf a < 0 Then
Text1.Text = "negative"
Else
Text1.Text = "zero"
End If
در این مثال اگر مقدار متغییر بزرگتر از صفر باشد کلمه مثبت و در غیر این صورت اگر مقدار متغیر کوچکتر از صفر باشد کلمه منفی و در غیر این صورت کلمه صفر در جعبه متن نوشته می شود.
وای خودمم دارم گیج می شم...
ساختار Select Case :
اگر تعداد شروطتان زیاد است چرا از ElseIf لعنتی استفاده می کنید.
Select Case گزینه خوبی برای تصمیم گیری از بین مقادیر مختلف می باشد.
بر عکس ElseIf خوانایی برنامه با Select Case بالا می رود.
Select Case عبارت
Case 1 عبارت
مجموعه دستورات 1
Case 2 عبارت
مجموعه دستورات 2
Case n عبارت
مجموعه دستورات n
Case Else
مجموعه دستورات Else
End Select
در این دستور عبارتی را که می خواهیم مقادیر مختلف آن را چک کنیم در جلوی Select Case می نویسیم.
سپس هر مقدار را در جلوی Case می نویسیم.
اگر مقدار ارزیابی شده عبارت مورد نظر برابر هر کدام از حالات باشد مجموعه دستورات بعد از آن حالت اجرا شده سپس دستور Select Case خاتمه می یابد.
اگر هیچ کدام از حالات درست نباشد مجموعه دستورات Else اجرا می شود.
مثال:
Select Case sVal
Case 0
Text1.Text = "zero"
Case 1
Text1.Text = "One"
Case 2
Text1.Text = "Two"
Case 3
Text1.Text = "Three"
Case 4
Text1.Text = "Four"
Case 5
Text1.Text = "Five"
Case Else
Text1.Text = "Error..."
End Select
در دستور Select Case از To برای انتخاب محدوده ای از اطلاعات استفاده می شود.
مثال:
Case 10 To 20
در دستور Select Case برای استفاده از عملگر های رابطه ای باید کلمه Is را نیز به کار برد.
مثال:
Case Is >50
از کاما نیز میتوان برای OR کردن عبارات استفاده کرد.
مثال:
Case Is <> 0, 10 To 20
اگر مقدار مخالف صفر باشد یا بین 10 تا 20 باشد مجموعه دستورات انجام می شود.
تابع IIF:
Function IIf(Expression, TruePart, FalsePart)
از این تابع هنگامی استفاده می شود که بخواهیم از بین دو مقدار یکی را برای یک متغییر استفاده کنیم.
اگر شرط درست باشد مقدار TruePart و در غیر این صورت مقدار FalsePart در نام تابع قرار داده می شود.
مثال:
Dim IsZero As Boolean
Dim Mark As Integer
IsZero = IIf(Mark = 20, True, False)
در این مثال اگر نمره برابر 20 باشد ارزش متغییر منطقی برابر درست و در غیر این صورت ارزش آن برابر نادرست می باشد.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum