با استفاده از دستور switch، می توانید کارهای مختلف را بر اساس شرط های متفاوت انجام دهید.
دستور Switch در JavaScript
برای انتخاب و اجرای یک دستور از بین چند دستور استفاده می شود.
این دستور در برخی موارد شباهت بسیار زیادی به دستورات if ... elseif ... else دارد.
دستور switch یک حالت خاص هم دارد به نام default که اگر هیچکدام از مقادیر درست نبود، آن قسمت اجرا می شود.
نحوه استفاده:
{
case 1:
execute code block 1
break;
case 2:
execute code block 2
break;
default:
code to be executed if n is different from case 1 and 2
}
کد بالا چگونه کار می کند:
- مقدار عبارت n با مقادیر caseها مقایسه می شود.
- اگر مقدار n با مقدار case مساوی بود، بلوک مربوطه اجرا خواهد شد.
مثال (دستور switch در JavaScript)
با استفاده از عددی که تابع ()getDay برمی گرداند، نام روزهای هفته محاسبه می شود: (Sunday=0 و Monday=1 و Tuesday=2 و ...)
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
زمانی که مفسر JavaScript به کلمه کلیدی break می رسد، بلافاصله از بلاک switch بیرون می رود.
در واقع، مقایسه caseهای باقی مانده را متوقف می کند.
![]() | زمانی که مقدار مساوی پیدا شد و کار موردنظرمان انجام گرفت، دیگر نیازی به مقایسه دیگر caseها نیست و باید از بلاک switch خارج شد. |
---|
کلمه کلیدی default
اگر هیچکدام از مقادیر مقابل caseها با متغیر n برابر نبود، در این صورت دستورات مربوط به default اجرا می شود.
مثال (دستور switch در JavaScript)
اگر امروز، شنبه یا یکشنبه نباشد، پیغام قسمت default چاپ خواهد شد:
case 6:
text = "Today is Saturday";
break;
case 0:
text = "Today is Sunday";
break;
default:
text = "Looking forward to the Weekend";
}
نتیجه ی کد بالا، اگر امروز یکشنبه باشد:
خودتان امتحان کنید »
یک کد مشترک به ازای چند case مختلف
بعضی مواقع می خواهید به ازای چند case مختلف یک کد مشترک استفاده شود و یا به قسمت default منتقل شود.
در مثال زیر، متوجه خواهید شد که چند case مختلف از یک کد مشترک استفاده کرده اند و الزامی ندارد که قسمت default را در آخر بیاوریم.
مثال (دستور switch در JavaScript)
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";
}
خودتان امتحان کنید »
کافیه کد زیر رو در داخل تگ p با آی دی demo قرار دهید، تا متن چاپ شده وسط چین شود:
style="text-align:center;"
اموزش ویدیویی جاوا اسکیریت چی شد pas؟
قولش رو داده بودین.
مرسی
چون هنوز با مبحث اشیاء در JavaScript آشنا نشده اید، بنابراین حق دارید که کلمه new برایتان سوال برانگیز باشد.
در زبان های شیء گرا، با استفاده از کلمه کلیدی new می توان یک شیء ایجاد کرد. اشیاء متغییرهای خاصی هستند که دارای یکسری Method ها و Property های مشخصی هستند. مثال:switch (new Date().getDay()) {
...
} در کد بالا، کلمه new باعث می شود تا یک شیء از نوع Date ایجاد شود و در ادامه با فراخوانی متد
()getDay ، روز جاری برگردانده می شود.
برای کسب اطلاعات بیشتر در مورد اشیاء در JavaScript به لینک زیر مراجعه فرمایید:
www.beyamooz.com/javascript/128-object/398
آیا switch و case ها فقط دارای قابلیت مقایسه نوع عدد میباشند وstring را نمی توانند؟
مرسی
در دستور switch هر چیزی می تواند مورد مقایسه قرار گیرد. اما نکته ای که وجود دارد این است که، این مقایسه تنها از لحاظ تساوی انجام خواهد شد.
در این مثال با استفاده از case عدد برگردانده شده را مقایسه کرده ایم، مثلاً گفته ایم که case 2 این یعنی اگر خروجی 2 بود "Wednesday" را در متغیر day قرار بده.
در نهایت day را در خروجی نمایش داده ایم.
مثلا همین مثلالی که نوشتین نگفتین چطوری کار میکنه فقط گفتین این کلمه ها برای این کارن
وقتی مثال میزنین یه توضیح هم براش بنویسین که بفهمیم چطوری ساختین
بنده پیشنهاد میدم که در مثالهایی که به کار میبرید چون برخی از کاربران مبتدی هستند مبانی که در صفحات قبلی آموزش دادید و کاربران با ان آشنایی کامل دارند رو به کار ببرید به طور مثال شما از آرایه ها و متدهایی استفاده کرده اید که هنوز کاربران با آن آشنا نشده اند.
مثال بنده در مورد switch
امتحان کنید
function myFunction() {
var age=3;
switch (age) {
case 0:
age = "you are infant";
break;
case 1:
age = "you can start to walk";
break;
case 2:
age = "you can speak!";
break;
case 3:
age= "you can go to nursery";
break;
}
document.getElementById("demo").innerHTML="in this age " +age;
}
با توجه به اینکه سایت مرجع ( W3Schools) به این صورت آموزش داده است، تغییری در چیدمان مثال ها یا نحوه ی بکارگیری آن ها ایجاد نشده است.