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

  • اجرای دستورات یا دستورات مورد نظر بر حسب مقادیر مختلف یک متغیر خاص .

هنگامی که تعداد دستورات 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>


 
Web hosting by Somee.com