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

ار این ساختار در زمانی استفاده می شود که بخواهیم بر حسب مقادیر مختلف یک متغیر یا عبارت خاص ، دستورات متفاوتی اجرا شود.

شکل کلی استفاده از این ساختار به صورت زیر است:

switch    ( نام یک متغیر یا یک عبارت )

{

  case    مقدار ۱ :

  case 1 دستورات مربوط به

  case    مقدار ۲ :

  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 >

دستور break :

همانطور که در قسمت بالا نیز اشاره شد ، چنانچه یک دستور case در ساختار switch اجرا شود ، برنامه به طور اتوماتیک دستورات تمام case های بعد از آن را نیز اجرا خواهد کرد ، مگر اینکه به یک دستور break برسد . . برای جلوگیری از این مسئله ، باید در پایان دستورات هر case از دستور break استفاده کرد.

در این حالت در صورت وارد شدن برنامه به یک دستور یک case ، فقط دستورات آن case اجرا شده و اجرای بقیه case ها متوقف می شود.

شکل کلی استفاده از دستور break به صورت زیر است:

switch    ( نام یک متغیر یا یک عبارت )

{

  case    مقدار ۱ :

  case 1 دستورات مربوط به

  break ;

  case    مقدار ۲ :

  case 2 دستورات مربوط به

  break ;

  .

  .

  .

  .


  case    n مقدار :

  case n دستورات مربوط به

  break ;

  default :



دستورات پیش فرض ساختار که در صورت عدم برقراری مقادیر تمام case های فوق ، اجرا خواهند شد 

}

مثال: در مثال زیر ، مثال قسمت قبل را با دستور break بازنویسی کرده ایم . همانطور که در خروجی مشاهد می کنید ، در این حالت به دلیل استفاده از دستور braek در پایان هر case ، فقط دستورات آن case اجرا شده و از اجرای دستورات case های دیگر جلوگیری می شود . برای مشاهده خروجی در کادر متن txtinput متنی را وارد کرده و سپس بر روی دکمه فرمان کلیک کنید.

< 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" ;

        break ;

        case "2":

        txtresult.value = "two";

        break ;

        case "3":

        txtresult.value = "three";

        break ;

        default:

        txtresult.value = "bigger than 3";

      }

    }

< /script >

دیدگاه‌ خود را بیان کنید

اشتراک در
اطلاع از
guest

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
سبد خرید0
There are no products in the cart!