ParsX.com
پذیرش پروژه از دانشجویی ... تا سازمانی 09376225339
 
   ProfileProfile   Log in to check your private messagesLog in to check your private messages  |  FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups Log inLog in   RegisterRegister 

ساختارهای تصمیم

 
Post new topic   Reply to topic    ParsX.com Forum Index -> ويژوال بيسيك .NET
View previous topic :: View next topic  
Author Message
unknown
مدير بخش ويژوال بيسيك
مدير بخش ويژوال بيسيك


Joined: 05 Dec 2004
Posts: 439
Location: Tehran

PostPosted: Wed Feb 23, 2005 4:15 pm    Post subject: ساختارهای تصمیم Reply with quote

ساختارهای تصمیم:

به مجموعی ای از دستورالعمل ها که امکان انتخاب و تصمیم گیری از بین یک یا چند موضوع را به ما می دهند ساختار های تصمیم می گویند.

جمله شرطی 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 باشد ارزش متغییر منطقی برابر درست و در غیر این صورت ارزش آن برابر نادرست می باشد.


مولف:
امیر مرادآبادی (amirmoradabadi@yahoo.com)
Back to top
Display posts from previous:   
Post new topic   Reply to topic    ParsX.com Forum Index -> ويژوال بيسيك .NET All times are GMT + 3.5 Hours
Page 1 of 1

 
Jump to:  
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