ساختار کنترلی switch در جاوا اسکريپت

10 / 10
از 1 کاربر

در این قسمت از آموزش جاوا اسکریپت به توضیح ساختار کنترلی switch در جاوا اسکریپت می پردازیم . از اين ساختار در زمانی استفاده می شود که بخواهيم بر حسب مقادير مختلف يک متغير يا عبارت خاص ، دستورات متفاوتی اجرا شود .
شکل کلی استفاده از اين ساختار در طراحی سایت به صورت زير است :

switch    ( نام يک متغير يا يک عبارت )
{
  case    مقدار 1 :
  case 1 دستورات مربوط به
  case    مقدار 2 :
  case 2 دستورات مربوط به
  .
  .
  .
  .

  case    n مقدار :
  case n دستورات مربوط به
  default :
دستورات پيش فرض ساختار که در صورت عدم برقراری مقادير تمام case های فوق ، اجرا خواهند شد 
}

از جوا اسکریپت در طراحی سایت بسیار استفاده می شود. نحوه عملکرد اين ساختار در جاوااسکریپت به شرح زير است :

ابتدا در پرانتز مقابل واژه کليدی switch ، يک متغير يا عبارت اعلام می شود . همچنين در هر دستور case ، يک مقدار مرتبط با آن متغير نيز تعيين می شود . برنامه مقدار متغير را ( که از قبل توسط يک تابع يا دستور مقدار دهی شده است ) را با مقدار تعيين شده برای هر case به ترتيب مقايسه کرده و در صورت برابر بودن آنها ، دستورات آن case و case های بعد از آن را اجرا می کند . در واقع دستورات تا زمان رسيدن به يک دستور break اجرا می شوند .
نکته : برای جلوگيری از اجرای case های بعدی همراه با case ای که اجرا می شود ، بايد در پايان دستورات هر case از واژه کليدی break استفاده کرد . برای دريافت توضيحات بيشتر ، به قسمت توضيح دستور break در پايين صفحه برويد .
قسمت default ، دستورات پيش فرض ساختار را تعيين می کند ، که در صورت عدم برقراری مقادير تمام case های ساختار ، دستورات آن قسمت اجرا خواهد شد .

نکات مهم :

√ نوع متغير تعيين شده در قسمت switch و مقدارهای هر يک از case ها بايد با هم يکسان و از يک نوع باشند .
√ به تعداد مورد نياز می توان از دستور case در ساختار switch استفاده کرد .
√ تعيين قسمت default در ساختار switch ، اختياری است و می تواند تعيين نشود .
√ مقدار هيچ دو case متفاوتی ، نبايد با هم يکسان باشد .

مثال : در مثال زير دو کادر متن و يک دکمه فرمان قرار داده شده است . کادر متن اول يک متن يا عدد از کاربر دريافت کرده و با کليک بر روی دکمه فرمان و فراخوانی تابع ( ) hello ، خروجی در کادر متن دوم نمايش داده می شود .
عملکرد تابع ( ) hello به شرح زير است :
اين تابع مقدار کنترل کادر متن اول يعنی txtinput ، را در متغير matn ذخيره کرده و سپس در يک ساختار switch ،بر حسب مقادير مختلف خروجی را در کادر متن دوم يعنی txtresult نمايش می دهد .

توجه : در اينجا به دليل عدم استفاده از دستور break در پايان دستورات هر case با اجرای هر کدام از case های مثال ، دستورات بقيه case ها نيز اجرا می شود . بنابراين همواره خروجی ما در اين حالت خروجی قسمت default است .

< input type="text" id="txtinput " / >
< input type="button" name="clickme" onclick="hello( )" value="click me !" / >
< input type="text" id="txtresult" / >
< script type="text/javascript" >
  function hello( )
   {
  var matn = txtinput.value ;
  switch (matn)
   {
  case "1":
  txtresult.value = "one" ;
  case "2":
  txtresult.value = "two";
  case "3":
  txtresult.value = "three";
  default:
  txtresult.value = "bigger than 3";
  }
  }
< /script >

ارسال نظر و نظرات ثبت شده