آموزش کار با
دستورات منطقی در #ASP.Net Razor C
دستورات منطقی ، چه دستوراتی
هستند ؟
دستورات منطقی ، کدهایی هستند که در
صورت بروز یک شرط یا شروط خاصی اجرا می شوند .
در صورتی که مقدار شرط تعیین شده صحیح باشد ، دستور تعیین شده اجرا شده و در صورت
عدم برقراری شرط ، دستور اجرا نمی شود . همچنین می توانید دستوری دیگری تعیین
نمایید تا در صورت عدم برقراری شرط ، نیز اجرا شود . برای مثال فرض کنید که می
خواهید به کاربر وقت بخیر بگویید . برای این منظور یک دستور if می نویسید که در شرط
آن ، ساعت سنجیده می شود . اگر ساعت از 12 ظهر نگذشته بود ، دستوری می نویسید که به
وی صبح بخیر گفته و در غیر اینصورت به وی عصر بخیر بگوید و ... .
در این درس به بررسی انواع حالت های منطقی در #Razor C ، خواهیم پرداخت .
دستور IF Condition :
این دستور ، در صورت برقراری شرط تعیین
شده برای آن ، کدهای خود را اجرا می کند . در غیر اینصورت کدی اجرا نمی شود .
ساختار دستوری if به صورت زیر است :
-
دستور با کلمه کلیدی if شروع می
شود .
-
شرط یا شروط مورد نظر برای دستور
در پرانتز مقابل if تعیین می شوند .
-
در صورت برقراری شرط ها ، کدهایی
که درون { } بعد پرانتز دستور قرار داشته اجرا شده و در صورت عدم بر قراری شرط
، هیچ دستوری اجرا نمی شود . مثال زیر نحوه تعریف و استفاده از این نوع شرط را
نشان می دهد .
مثال : در مثال زیر
یک متغیر قیمت به نام price را در ابتدای صفحه
تعیین و مقدار آن را بر روی 50 تنظیم نموده ایم . سپس درون یک دستور شرطی if در کد
صفحه ، مقدار متغیر price را سنجیده و تعیین
کرده ایم تا اگر مقدار آن از 30 بیشتر بود ، پیام " قیمت زیاد است " را به کاربر
نمایش دهد . در غیر اینصورت ( اگر قیمت زیر 30 باشد ) پیامی به کاربر صادر نمی شود
.
توجه کنید که این مثال یک مثال ساده
است ، ولی می توان کاری کرد تا مثلا مقدار متغیر قیمت از یک ورودی توسط کاربر گرفته
شده یا از یک منبع داده ای خوانده شود .
مثال
|
@
{ var price=50 ; }
<html>
<body>
@if (price>30)
{
<p>قیمت زیاد است .</p>
}
</body>
</html>
|
خروجی
|
قیمت زیاد است .
|
بخش Else در دستور If :
دستور if در بخش دوم خود می تواند شامل
گزینه ای به نام else نیز باشد . کدهایی که درون { } پس از کلمه کلیدی else نوشته
می شوند ، در صورتی که دستور if غلط باشند ، اجرا خواهند شد . مثال زیر نحوه اضافه
کردن و استفاده از این بخش را نشان می دهد .
مثال 2 : در مثال زیر یک بخش جدید به انتهای دستور if به نام else
اضافه کرده ایم . بخش else در صورتی که مقدار متغیر قیمت یا price زیر 30 باشد ( به
عبارت دیگر ، شرط if در بخش اول غلط شود ) اجرا شده و پیامی مبنی برا اینکه " قیمت
مناسب است " را صادر می کند .
مثال
|
@
{ var price=20 ; }
<html>
<body>
@if (price>30)
{
<p>قیمت زیاد است .</p>
}
else
{
<p> قیمت مناسب است.</p>
}
</body>
</html>
|
خروجی
|
قیمت مناسب است .
|
قسمت های اضافه تر و شرهای تو در
تو Else If :
به هر تعداد مورد نیاز می توان دستورات
if دیگری را با ساختار else if به انتهای یک دستور if ( به جای بخش else ) اضافه
کرد .
این بخش ها ، هر یک دارای شرط خاص مربوط به خود بوده و برنامه شرط ها را از ابتدا (
خود دستور if اول ) چک می کند ، سپس کد هر if که شرط آن درست بوده را اجرا نموده و
کد بقیه را نادیده می گیرد . در آخر کد نیز می توان یک بخش else تعریف کرد ، تا در
صوراتی که شرط هیچ یک از if های آن درست نبود ، کد قسمت else اجرا شود. مثال زیر
نحوه استفاده از if های ادامه دار و چندگانه را نشان می دهد .
مثال 3 : در مثال زیر دو دستور if ، اولی به صورت معمولی و دومی
را با حالت else if تعیین کرده ایم . دستور if اول چک می کند ، آیا قیمت از 30
بیشتر است . دستور else if دوم ، در صورتی که if اول اجرا نشود ، چک می می کند آیا
قیمت بین 20 تا 30 است و در نهایت بخش آخر else که در صورت درست نبودن if های قبل
از خود ، اجرا می شود .
مثال
|
@
{ var price=25 ; }
<html>
<body>
@if (price>30)
{
<p>قیمت زیاد است .</p>
}
else if (price>20 && price<30)
{
<p> قیمت مناسب است .</p>
}
else
{
<p> قیمت کم است.</p>
}
</body>
</html>
|
خروجی
|
قیمت مناسب است .
|
ساختار دستوری Switch :
ساختار دستوری switch ، نوع خاصی از
دستورات شرطی است که برای حالات زیر به کار می رود :
هنگامی که تعداد دستورات if تو در تو
زیاد شود ، ممکن است کد نا مفهموم شده و اجرای آن بر روی سیستم وقت گیر شود .
همچنین وقتی قرار است بر مبنای مقدار های مختلف یک متغیر خاص ، دستورات مختلفی
اجرا شوند ، راه ساده و خلاصه تر استفاده از دستور switch است . شکل کلی استفاده از
این دستور به شرح زیر است :
-
ابتدا کلمه کلیدی switch را نوشته
و در پرانتز مقابل آن ، متغیر مورد نظر خود را قرار می دهیم . سپس برای تعیین
انواع دستورات مورد نظر جهت اجرا ، یک { } قرار می دهیم .
-
به وسیله کلمه کلیدی case ، هر یک
از مقدار های مختلف جهت متغیر خود را که می خواهیم در صورت برابری آن با مقدار
تعیین شده ، اجرا شود را در " " کلمه case تعیین می کنیم . سپس دستورات مورد
نظر جهت اجرای برای آن حالت را در ادامه تعریف کرده و در پایان هر گروه دستور
یک عبارت ; break برای توقف اجرای سایر دستورات case های دیگر قرار می دهیم .
-
برنامه ابتدا مقدار متغیر را می
خواند . سپس مقدار هر یک از case های تعیین شده را با مقدار متغیر مقایسه کرده
و در صورت برابر بودن آنها ، دستورات آن case اجرا می شود . اگر در هر case
عبارت ; break را در انتهای دستورات قرار ندهیم ، همزمان با آن case ، دستورات
case بعدی نیز اجرا شده که معمولا ما را دچار اشکال می کند . پس ; break فراموش
نشود .
-
در نهایت اگر مقدار متغیر ، با
مقادیر هیچ یک از case ها یکسان نباشد ، دستورات بخش default اجرا می شوند .
البته این بخش دلخواه بوده و می تواند اصلا تعیین نشود .
مثال 4 : در مثال زیر
، توسط یک دستور ابتدا مقدار روز تاریخ جاری سیستم ، در متغیر day ذخیره می شود .
سپس یک متغیر به نام message نیز برای صدور پیام دستور تعریف شده است .
دستور switch مقدار روز جاری یعنی متغیر day را با مقادیر case های مختلف سنجیده و
در صورت برابری با هر کدام ف دستور آن case اجرا می شود . در نهایت اگر متغیر day
با هیچ یک از مقادیر برابر نبود ، دستورات بخش default اجرا می شوند .
مثال
|
@{
var weekday=DateTime.Now.DayOfWeek;
var day=weekday.ToString();
var message="";
}
<html>
<body>
@switch(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;
default:
message="Today is "
+ day;
break;
}
<p>@message</p>
</body>
</html>
|