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

دستور switch در جاوا اسکریپت

این دستور برای گزینش و اجرای یک دستور از میان چندین دستور مختلف بکار می رود.

دستور نگارش

switch(expression) {
case n:
code block
break;
case n:
code block
break;
default:
default code block

{

رویه ی اجرای این دستور به شرح زیر می باشد.

عبارت switch ابتدا یک بار ارزیابی می گردد.

سپس مقدار عبارت با مقادیر هر یک از case ها به طور جداگانه مقایسه می گردد.

چنانچه مقدار عبارت با یکی از case ها مطابقت و همخوانی داشت، قطعه کد مربوطه اجرا می گردد.

مثال

متد getDay() شماره ی روز هفته را از بین اعداد ۰ تا ۶ برمی گرداند. (Sunday=0, Monday=1, Tuesday=2..)

با استفاده از شماره ی روز هفته، اسم روز هفته را بدست آورید.

نمونه یک

switch (new Date().getDay()) {
case 0:
day = “Sunday”;
break;
case 1:
day = “Monday”;
break;
case 2:
day = “Tuesday”;
break;
case 3:
day = “Wednesday”;
break;
case 4:
day = “Thursday”;
break;
case 5:
day = “Friday”;
break;
case 6:
day = “Saturday”;
break;
}

کلید واژه ی break

زمانی که code interpreter جاوا اسکریپت به کلیدواژه ی break می رسد، از قطعه کد (code block) switch خارج می گردد، این کار باعث می شود اجرای کدهای اضافی و همچنین آزمایش کردن case های دیگر که نیازی به امتحان آن ها نیست جلوگیری شود. چنانچه یک دستور case در ساختار switch اجرا شود، برنامه به طور اتوماتیک دستورات تمام case های بعد از آن را نیز اجرا خواهد کرد، مگر اینکه به یک دستور break برسد. برای جلوگیری از این مسئله، باید در پایان دستورات هر case از دستور break استفاده کرد.

هنگامی که مقدار عبارت switch با یکی از case ها مطابقت پیدا می کند (یک match پیدا می شود)، زمان اجرای دستور break فرا می رسد و دیگر نیازی به اجرای تست بیشتر و مقایسه دیگر case ها نیست.

کلید واژه ی default

کلیدواژه ی default در صورت پیدا نشدن match، مشخص می کند کدام کد باید اجرا شود یا به عبارتی دیگر دستورات پیش فرض ساختار را تعیین می کند، که در صورت عدم برقراری مقادیر تمام case های ساختار، دستورات آن قسمت اجرا خواهد شد.

مثال

متد getDay() شماره ی روز هفته را (بین ۰ تا ۶) برمی گرداند.

چنانچه تاریخ جاری با هیچ یک از مقادیر case ها (۶ و ۰) همخوانی نداشته باشد، پیغام پیش فرض نمایش داده می شود.

نمونه دو

var text;
switch (new Date().getDay()) {
case 6:
text = “Today is Saturday”;
break;
case 0:
text = “Today is Sunday”;
break;
default:
text = “Looking forward to the Weekend”;
}
document.getElementById(“demo”).innerHTML = text;

کد واحد برای چندین case

گاهی اوقات برنامه نویس می خواهد چند case مختلف از یک کد واحد استفاده کنند و یا در غیر این صورت به default مشترک انتقال داده شود.

در مثال بعدی مشاهده می کنید که چندین case می توانند در یک بلوک یا قطعه کد واحد قرار بگیرند و default case (case پیش فرض) نیازی نیست لزوما آخرین case در یک بلوک باشد.

مثال

نمونه سه

switch (new Date().getDay()) {
case 1:
case 2:
case 3:
default:
text = “Looking forward to the Weekend”;
break;
case 4:
case 5:
text = “Soon it is Weekend”;
break;
case 0:
case 6:
text = “It is Weekend”;
}

چنانچه default آخرین case در یک بلوک switch نبود، در آن صورت لازم است به یاد داشته باشید آن را با یک دستور break خاتمه بدهید.
آموزش دستور switch case در جاوا اسکریپت