آموزش ASP.Net به زبان ساده > آموزش ASP.Net Razor
درس هشتم : آموزش کار با دستورات منطقی در ASP.Net Razor VB
دستورات منطقی ، چه دستوراتی هستند ؟
دستورات منطقی ، کدهایی هستند که در صورت بروز یک شرط یا شروط خاصی اجرا می شوند .
در صورتی که مقدار شرط تعیین شده صحیح باشد ، دستور تعیین شده اجرا شده و در صورت عدم
برقراری شرط ، دستور اجرا نمی شود . همچنین می توانید دستوری دیگری تعیین نمایید تا
در صورت عدم برقراری شرط ، نیز اجرا شود . برای مثال فرض کنید که می خواهید به
کاربر وقت بخیر بگویید . برای این منظور یک دستور if می نویسید که در شرط آن ، ساعت
سنجیده می شود . اگر ساعت از 12 ظهر نگذشته بود ، دستوری می نویسید که به وی صبح بخیر
گفته و در غیر اینصورت به وی عصر بخیر بگوید و ... .
در این درس به بررسی انواع حالت های منطقی در Razor VB ، خواهیم پرداخت .
دستور IF Condition :
این دستور ، در صورت برقراری شرط تعیین شده برای آن ، کدهای خود را اجرا می کند . در
غیر اینصورت کدی اجرا نمی شود . ساختار دستوری if به صورت زیر است :
- دستور با کلمه کلیدی If شروع شده و پس از آن شرط یا شروط مورد نظر برای دستور
If تعیین می شوند . سپس کلمه کلیدی Then را قرار می دهید .
- در صورت برقراری شرط یا شروط مورد نظر ، کدهایی که بین محدوده کلمه Then و End
If قرار دارند اجرا شده و در صورت عدم بر قراری شرط ، هیچ دستوری اجرا نمی شود . مثال
زیر نحوه تعریف و استفاده از این نوع شرط را نشان می دهد .
- ساختار دستوری If در VB با End If به پایان می رسد .
مثال : در مثال زیر یک متغیر قیمت به نام
price را در ابتدای صفحه تعیین و مقدار آن را بر روی 50 تنظیم نموده ایم
. سپس درون یک دستور شرطی if در کد صفحه ، مقدار متغیر price
را سنجیده و تعیین کرده ایم تا اگر مقدار آن از 30 بیشتر بود ، پیام " قیمت
زیاد است " را به کاربر نمایش دهد . در غیر اینصورت ( اگر قیمت زیر 30 باشد ) پیامی
به کاربر صادر نمی شود .
توجه کنید که این مثال یک مثال ساده است ، ولی می توان کاری کرد تا مثلا مقدار متغیر
قیمت از یک ورودی توسط کاربر گرفته شده یا از یک منبع داده ای خوانده شود .
|
مثال
|
@Code
Dim price=50
End Code
<html>
<body>
@If price>30 Then
@<p> قیمت زیاد
است .</p>
End If
</body>
</html>
|
|
خروجی
|
قیمت زیاد است .
|
بخش Else در دستور If :
دستور if در بخش دوم خود می تواند شامل گزینه ای به نام Else نیز باشد . کدهایی کهپس
از کلمه کلیدی Else نوشته می شوند ، در صورتی که دستور If غلط باشند ، اجرا خواهند
شد . مثال زیر نحوه اضافه کردن و استفاده از این بخش را نشان می دهد .
مثال 2 : در مثال زیر یک بخش جدید به انتهای دستور if به نام Else
اضافه کرده ایم . بخش Else در صورتی که مقدار متغیر قیمت یا price زیر 30 باشد ( به
عبارت دیگر ، شرط if در بخش اول غلط شود ) اجرا شده و پیامی مبنی برا اینکه " قیمت
مناسب است " را صادر می کند .
|
مثال
|
@Code
Dim price=20
End Code
<html>
<body>
@if price>30
then
<p>قیمت زیاد است .</p>
Else
<p>
قیمت مناسب است.</p>
End If
</body>
</html>
|
|
خروجی
|
قیمت مناسب است .
|
قسمت های اضافه تر و شرهای تو در تو ElseIf :
به هر تعداد مورد نیاز می توان دستورات if دیگری را با ساختار ElseIf به انتهای یک
دستور if ( به جای بخش Else ) اضافه کرد .
این بخش ها ، هر یک دارای شرط خاص مربوط به خود بوده و برنامه شرط ها را از ابتدا (
خود دستور if اول ) چک می کند ، سپس کد هر if که شرط آن درست بوده را اجرا نموده و
کد بقیه را نادیده می گیرد . در آخر کد نیز می توان یک بخش Else تعریف کرد ، تا در
صوراتی که شرط هیچ یک از If های آن درست نبود ، کد قسمت Else اجرا شود. مثال زیر نحوه
استفاده از If های ادامه دار و چندگانه را نشان می دهد .
مثال 3 : در مثال زیر دو دستور If ، اولی به صورت معمولی و
دومی را با حالت ElseIf تعیین کرده ایم . دستور If اول چک می کند ، آیا قیمت از 30
بیشتر است . دستور ElseIf دوم ، در صورتی که If اول اجرا نشود ، چک می می کند
آیا قیمت بین 20 تا 30 است و در نهایت بخش آخر Else که در صورت درست نبودن If های قبل
از خود ، اجرا می شود .
|
مثال
|
@Code
Dim price=25
End Code
<html>
<body>
@If price>=30 Then
<p>قیمت زیاد است .</p>
ElseIf price>20 And price<30
<p>
قیمت مناسب است .</p>
Else
<p>
قیمت کم است.</p>
End If
</body>
</html>
|
|
خروجی
|
قیمت مناسب است .
|
ساختار دستوری Select :
ساختار دستوری Select ، نوع خاصی از دستورات شرطی است که برای حالات زیر به کار می
رود :
- خلاصه کردن و ساده سازی دستورات چندگانه If در قالب یک قطعه کد .
- اجرای دستورات یا دستورات مورد نظر بر حسب مقادیر مختلف یک متغیر خاص .
هنگامی که تعداد دستورات If تو در تو زیاد شود ، ممکن است کد نا مفهموم شده و اجرای
آن بر روی سیستم وقت گیر شود . همچنین وقتی قرار است بر مبنای مقدار های مختلف یک متغیر
خاص ، دستورات مختلفی اجرا شوند ، راه ساده و خلاصه تر استفاده از دستور Select
است . شکل کلی استفاده از این دستور به شرح زیر است :
- ابتدا کلمه کلیدی Select Case را نوشته و در مقابل آن ، متغیر مورد نظر خود را قرار
می دهیم .
- به وسیله کلمه کلیدی Case ، هر یک از مقدار های مختلف جهت متغیر خود را که می خواهیم
در صورت برابری آن با مقدار تعیین شده ، اجرا شود را در " " کلمه Case تعیین
می کنیم . سپس دستورات مورد نظر جهت اجرای برای آن حالت را در ادامه تعریف کرده و در
پایان هر گروه دستور یک عبارت ; break برای توقف اجرای سایر دستورات Case های دیگر
قرار می دهیم .
- برنامه ابتدا مقدار متغیر را می خواند . سپس مقدار هر یک از Case های تعیین شده را
با مقدار متغیر مقایسه کرده و در صورت برابر بودن آنها ، دستورات آن Case اجرا می شود
. اگر در هر Case عبارت ; break را در انتهای دستورات قرار ندهیم ، همزمان با آن
Case
، دستورات Case بعدی نیز اجرا شده که معمولا ما را دچار اشکال می کند . پس ; break
فراموش نشود .
- در نهایت اگر مقدار متغیر ، با مقادیر هیچ یک از Case ها یکسان نباشد ، دستورات بخش
Else Case اجرا می شوند . البته این بخش دلخواه بوده و می تواند اصلا تعیین نشود .
مثال 4 : در مثال زیر ، توسط یک دستور ابتدا مقدار روز تاریخ جاری
سیستم ، در متغیر day ذخیره می شود . سپس یک متغیر به نام message نیز برای صدور
پیام دستور تعریف شده است .
دستور Select مقدار روز جاری یعنی متغیر day را با مقادیر Case های مختلف سنجیده و
در صورت برابری با هر کدام ف دستور آن Case اجرا می شود . در نهایت اگر متغیر day با
هیچ یک از مقادیر برابر نبود ، دستورات بخش Else Case اجرا می شوند .
|
مثال
|
@Code
Dim weekday=DateTime.Now.DayOfWeek
Dim day=weekday.ToString()
Dim message=""
End Code
<html>
<body>
@Select Case day
Case "Monday":
message="This is the first weekday.";
break;
Case "Thursday":
message="Only one day before weekend.";
break;
Case "Friday":
message="Tomorrow is weekend!";
break;
Case Else
message="Today is " + day;
break;
End Select
<p>@message</p>
</body>
</html>
|
راجع این مطلب
سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...
>>>>> ورود به انجمن تخصصی
نطر خودتان درباره این صفحه را با ما در میان گذاشته و در صورت تمایل از Developer1
حمایت نمایید :