دستور شرطی switch در جاوا اسکرپت
با استفاده از دستور if امکان این وجود دارد که برنامه را حداکثر به یکی از دو جهت ممکن هدایت کنیم. یعنی اگر شرط مورد نظر برقرار بود اسکرپت یک سری کد را اجرا می کند و در صورت عدم برقراری شرط یک سری کد دیگر اجرا می شود. اگر بخواهیم برای اسکرپت خود مسیرهای بیشتری در نظر بگیریم یک راه موجود استفاده از دستورات if تو در تو است. این روش ممکن است در موارد جزئی کارایی داشته باشد اما اگر تعداد شرطها زیاد شود ما را مجبور می کند از تعداد زیادی if و else در اسکرپت خود استفاده کنیم که این مسئله هم باعث طولانی شدن برنامه و هم باعث گیج کننده شدن آن می شود از طرفی امکان اشتباه را هم بالا می برد.
راه حل دیگر استفاده از دستور شرطی switch است. این دستور را می توان در هنگامی که می خواهیم یک متغیر را با چندین مقدار مقایسه کنیم و مقدار متناسب با آنرا پیدا کنیم کار برد دارد. ساختار این دستور به صورت زیر است :
switch(x) { case مقدار اول: این کد در صورت برابری متغیر x با مقدار اول اجرا می شود break case مقدار دوم: این کد در صورت برابری متغیر x با مقدار دوم اجرا می شود break default: این کد در صورتی اجرا می شود که مقدار متغیر x با هیچکدام از مقادیر ذکر شده برابر نباشد }
در این دستور مقدار متغیر معرفی شده در قسمت switch با مقادیر آورده شده در هر case مقایسه می شود. در صورت مساوی بودن مقادیر کد همان case اجرا می شود و با استفاده از دستور break آورده شده در هر قسمت برنامه پس از اجرای کد آن قسمت به خارج از دستور switch هدایت می شود. در غیر این صورت برنامه به سراغ case بعدی می رود و در صورتی که مقدار متغیر مورد نظر با هیچکدام از case ها برایر نبود کد قسمت default اجرا خواهد شد.
قابل ذکر است که استفاده از default اختیاری است و شما بنا به نیاز خود می توانید از آن استفاده کرده یا آنرا حذف کنید.در دستور switch محدودیتی در تعدار case ها وجود ندارد و می توانید به هر تعدادی که نیاز داری از این مورد استفاده کنید.
در این قسمت به ذکر یک نمونه برای ادستور switch می پردازیم :
به کدی که در اینجا آورده شده است توجه کنید. پس از جرای این کد کادری باز می شود که از شما میخواهد عددی را وارد کنید. با وارد کردن عدد در این کادر و تأیید آن پیامی متناسب با روز معادل آن عدد در هفته ظاهر می شود. البته ما این کار را فقط برای اعداد 1 تا 3 انجام دادیم، شما در صورت تمایل می توانید آنرا تکمیل کنید :
var x=prompt('لطفاً یک عدد بین 1 تا 7 وارد کنید :',' '); switch (x) { case '1': alert('شماره وارد شده مربوط به روز « شنبه » است'); break case '2': alert('شماره وارد شده مربوط به روز « یکشنبه » است'); break case '3': alert('شماره وارد شده مربوط به روز « دوشنبه » است'); break case '4': alert('شماره وارد شده مربوط به روز « سه شنبه » است'); break case '5': alert('شماره وارد شده مربوط به روز « چهارشنبه » است'); break case '6': alert('شماره وارد شده مربوط به روز « پنجشنبه » است'); break case '7': alert('شماره وارد شده مربوط به روز « جمعه » است'); break default: alert('روز مربوط به شماره وارد شده در این برنامه وجود ندارد'); }
اين سايت جالبي بود كه من تا به حال ديديم.