استفاده از سوئیچ در زبان جاوا اسکریپت در هنگامی که میخواهیم از بین چندین قطعه بلاک کد برای اجرا شدن یکی (یا چند تا) را طبق مقدار ورودی انتخاب کنیم بسیار مناسب است.
نحوه نگارش دستور سوئیچ در جاوا اسکریپت
نحوه نگارش دستور سوییچ در زبان جاوا اسکریپت اینگونه است:
switch(expression or literal value){
case 1:
//code to be executed
break;
case 2:
//code to be executed
break;
case n:
//code to be executed
break;
default:
//default code to be executed
//if none of the above case executed
}همین طور که در سینتکس بالا می بینید، ابتدا باید به دستور switch یک مقدار وارد شود. این مقدار می تواند یک متغیر یا یک Literal باشد.
هنگامی که مقدار مورد نظر را به سوئیچ میدهیم، سوئیچ از بین case های مشخص شده اولین case منطبق را میابد و کد های زیر مجموعه آن case را اجرا می کند.
برنامه نویس در هنگام تعریف به یک سوئیچ می تواند هر تعداد که بخواهد case مشخص کند تا شرایط برای اجرای کد ها را تعیین کند.
دقت کنید که در دستور سوییچ کد ها تا زمانی اجرا می شوند که به کلمه کلیدی
breakبرسد. پس اگر شرطی در یکcaseبرقرار باشد ولی در آنcaseاز دستورbreakاستفاده نشده باشد سیستمcaseهای بعدی را نیز بررسی خواهد کرد.
مورد default شبیه else عمل می کند. در واقع این دستور برای سوئیچ مشخص می کند که اگر هیچ کدام از case ها برقرار نبود چه قطعه کدی اجرا شود.
به مثال زیر توجه کنید:
var a = 3;
switch (a) {
case 1:
alert('case 1 executed');
break;
case 2:
alert("case 2 executed");
break;
case 3:
alert("case 3 executed");
break;
case 4:
alert("case 4 executed");
break;
default:
alert("default case executed");
}فصل 19 – مثال 1
در مثال بالا متغیری به نام a به سوئیچ داده شده است و به ترتیب چهار case با شروط مختلف تعیین شده اند که در صورت برابر بودن a با هر یک، کد های زیر مجموعه آن اجرا خواهد شد. در مثال بالا a برابر 3 است پس آلرت case 3 executed نشان داده می شود.
در مثال بالا چون از کلمه کلیدی break استفاده شده است، به اولین case منطبق که برسیم کد های زیر مجموعه آن اجرا می شود و سوئیچ به پایان خواهد رسید. در صورتی که از کلمه کلیدی break استفاده نشده باشد سیستم همچنان برای پیدا کردن کیس های منطبق، کار خود را ادامه خواهد داد.
استفاده از عبارات به عنوان Case در سوئیچ جاوا اسکریپت
یک case در سوئیچ همچنین می تواند حاوی عبارتی خاص نیز برای شرط باشد. به مثال زیر توجه کنید:
var a = 3;
switch (a/3) {
case 1:
alert("case 1 executed");
break;
case 2:
alert("case 2 executed");
break;
case 3:
alert("case 3 executed");
break;
case 4:
alert("case 4 executed");
break;
default:
alert("default case executed");
}فصل 19 – مثال 2
در مثال بالا مورد اول اجرا خواهد شد زیرا 3/3=1 است.
استفاده از رشته به عنوان Case در سوئیچ جاوا اسکریپت
همچنین در دستور سوئیچ در زبان جاوا اسکریپت می توانید از رشته نیز استفاده کنید مانند مثال زیر:
var str = "mehdi";
switch (str)
{
case "abbas":
alert("عباس اینجاست");
case "asghar":
alert("اصغر اینجاست");
break;
case "mehdi":
alert("مهدی اینجاست");
break;
default:
alert("شخص ناشناخته");
break;
}فصل 19 – مثال 3
ادغام چند Case در یک سوئیچ جاوا اسکریپت
همچنین زبان جاوا اسکریپت اجازه ادغام چند case را نیز می دهد، این عملیات هنگامی انجام می شود که شما case های متعدد بدون break و بدون کد زیرمجموعه بنویسید. مانند مثال زیر:
var a = 2;
switch (a) {
case 1:
case 2:
case 3:
alert("case 1, 2, 3 executed");
break;
case 4:
alert("case 4 executed");
break;
default:
alert("default case executed");
}فصل 19 – مثال 4