سختارهای تصمیم گیری یا انتخاب (شرط)
در vb.net 5 ساختار برای کار با شرطها وجود دارد که عبارتند از : If\ Then , If\ Then \ Else , Select Case , Switch و Choose . دو دستور آخر در vb6 وجود نداشتند و در نسخه .net عرضه شده اند.
ساختار If \ Then : یا ساختار شرط تک انتخابی که برای تست کردن صحت یک شرط بکار میرود و در صورتیکه مقدار شرط true باشد, دستورهای داخل بدنه شرط اجرا میشود.مثال :
Dim temperature As Integer
If temperature>30 Then
Msgbox("very hot")
End if
ساختار شرط If\ Then با دستور If شروع میشود, پس از شرط , عبارت Then و بدنه شرط که محل قرار گرفتن کدهای اجرا شونده بعد از تست شرط است. در پایان هم با عبارت End If از شرط خارج میشویم. در صورت استفاده از دستور فوق ما فقط قادر به آزمون یک تست و طبعا نتیجه گیری بر اساس همان تک شرط هستیم و فقط یک راه برای انتخاب داریم.اگر شرط True نباشد برنامه بدون انجام کاری از دستور خارج میشود
ساختار If \Then \ Else : در این دستور شرطی بر خلاف دستور بالا دو حالت انتخاب وجود دارد, True بودن شرط که منجر به اجرای عملی میشود و یا False بودن شرط که منجر به اجرای عملی دیگر میشود.
Dim temperature As Integer
If temperature>30 Then
Msgbox("very hot")
Else
Msgbox("Very nice or cool ")
End if
در این عبارت ابتدا شرط تست میشود, در صورتیکه True شود کدهای بعد از Then اجرا میشوند اما اگر شرط False شود کدهای بعد از Else اجرا میشوند.(دو انتخاب)
Select Case : با استفاده از این ساختار تصمیم گیری ما قادر به تستهای زیادی هستیم. و میتوانیم چندین آیتم را با هم مد نظر داشته باشیم.
Select Case(متغیر یا عبارت)
Case 1 (اولین ایتمی که باید چک شود)
Do………
Case 2
Do…………..
……….
Case n
Do………………
Case else
Do…………….
End Select
در داخل دستورات شرطی میتوانیم از عملگرهای منطقی استفاده کنیم. در دستور Select قادر به تست در بین دوبازه هستیم.
Dim temperature As Integer
Select temperature
Case >50
Do ………………………..
Case<30 And >10
Do………………………….
Case 30 to 50
Do …………………………
Case Is 30
Do ………………………….
Case else
Do ……………………………
End select
Microsoft.VisualBasic.Switch : این دستور که در vb.net جدید است, لیستی از عبارات یا مقدار را میگیرد و اولین آیتمی را که مقدار True داشته باشد, برمیگرداند.
Microsoft.VisualBasic.Switch(مقدار یا متغیر1 , مقدار برگشتی1 ,……….,lمقدار یا متغیر n , مقدار برگشتی n)
ایتدا عبارت اول چک میشود, در صورتیکه True باشد مقدار برگشتی 1 برگردانده میشود, در غیر این صورت عبارت دوم چک میشود و الی ..........
Choose : در واقع تابعی است که بر اساس مقدار عددی یک ایندکس, یکی از آیتمهای مشخص شده در لیست را برمی گرداند.
Choose(index, Choise1,Choice2,…………..,Choisen)
اگر ایندکس مقدار 1 داشته باشد, ایتم 1 , اگر ایندکس 2 ایتم 2 و .......................
نمونه کد :
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
ساختارهای تکرار یا حلقه ها (Loop)
برنامه نویسان vb قادر به ایجاد حلقه هایی با سه دستور For , Do و While هستند.
حلقه For : مهمترین حلقه vb است و فرم کلی آن بصورت زیر است :
For index(As DataType)= Start to end [Step X]
Do ………..
Next [index]
با شروع حلقه متغیر index مقدار Start را به خود میگیرد, هر بار که حلقه تکرار میشود این متغیر با توجه به Step افزایش پیدا میکند (در صورتیکه مقدار Step نوشته نشود vb بصورت پیش فرض مقدار آنرا برابر 1 قرار میدهد). حلقه زمانیکه متغیر index به end رسید خانمه پیدا میکند.(البته میتوان با دستور Exit For حلقه را پایان داد).
در vb.net بر خلاف ویرایشهای قبلی میتوانیم متغیر حلقه را در خود حلقه تعریف کنیم مانند بالا یا اینکه آنرا ماقبل شروع حلقه تعریف کنیم.
Dim index As integer
For index=0 to n
Or
For Index As integer=0 to n
بعنوان مثال مجموع اعداد 1 تا 100 را با استفاده از حلقه For بدست می آوریم :
Dim sum,number As integer
Sum=0
For number=0 to 100
Sum=sum+number
Nexe
Msgbox(sum)
حلقه For Each : این حلقه مشابه با حلقه for است با این تفاوت که (مثلا در آرایه ها یا کلکسیونها) نیازی به دانستن تعداد عناصر نداریم. فرم کلی حلقه بصورت زیر است
For each element (As datatype) in group
Do ……………
Next (element)
در اینجا عناصر موجود در آرایه یا کلکسیون group یکی یکی به متغیر element نسبت داده میشوند.
حلقه While : این حلقه شرطی را تست میکند, تا زمانیکه شرط true باشد حلقه بکار خود ادامه میدهد. هنگامیکه شرط False ارزیابی شود, برنامه از حلقه خارج و اولین دستور بعد از حلقه انجام می گیرد. فرم کلی حلقه بصورت زیر است: این حلقه بیشتر زمانی بکار می آید که تعداد تکرارها برای ما نامشخص است.
While condition
Do ………………
End while
بعنوان مثال با حلقه فوق اولین توان 3 بزرگتر از 3000 را بدست می آوریم :
Dim number As integer=3
While number<=3000
Number=number*3
End While
Msgbox(number)
**** در این حلقه و حلقه Do از سایر توابع vb که مقدار true یا false برمیگردانند میتوان استفاده کرد.
حلقه Do : حلقه Do تا زمانیکه یک شرط true باشد(While) یا نباشد (Until) اجرا میشود, دو نوع حلقه Do داریم. در نوع اول : شرط حلقه در ایتدای آن تست میشود
Do while | untile condition
Do ………………
Loop
*** برخلاف ساختارهای While و Do While \ Loop ؛ ساختار تکرار Do Until \ Loop شرط را برای برقرار نبودن (False) چک میکند تا تکرار ادامه یابد.
اگر مثالی را که با حلقه While انجام دادیم, بخواهیم با استفاده از حلقه Do Until \ Loop بنویسیم, میشود :
Do until number>3000
Number=number*3
………………………
در نوع دوم , شرط حلقه در انتهای آن تست میشود, این حلقه حداقل یکبار اجرا میشود.
Do
Do ………………..
Loop (while | untile)