از دستور switch برای انتخاب یکی از چندین بلوک کد، بر اساس شرایط مختلف استفاده می شود:
Syntax
چطور کار می کند:
. عبارت داخل پرانتز یک بار بررسی شده و با مقدر هر کدام از case ها مقایسه می شود.
· اگر عبارت با یک مقدار ثابت مطابقت داشته باشد، دستورات متناظر با آن case اجرا خواهد شد.
·اگر عبارت با هیچ یک از مقادیر ثابت مطابقت نداشته باشد دستورات پیشفرض اجرا می شوند.
• عبارتswitch تنها یک بار ارزیابی می شود.
• مقدار عبارت با مقادیر هر مورد مقایسه می شود.
• اگر مطابقت وجود داشته باشد، بلوک کد مرتبط اجرا می شود.
• اگر مطابقت وجود نداشته باشد، بلوک کد پیش فرض اجرا می شود.
مثال
به عنوان مثال نتیجه روز خواهد بود:
دوشنبه
کلید واژه break
وقتی جاوا اسکریپت به کلمه کلیدی break می رسد، از بلوک سوئیچ خارج می شود.
با این کار اجرای داخل بلوک سوئیچ متوقف می شود.
نیازی به شکستن آخرین مورد در بلوک سوئیچ نیست. به هر حال بلوک در آنجا شکسته می شود (به پایان می رسد).
توجه: اگر دستور break را حذف کنید، مورد بعدی حتی اگر ارزیابی با case مطابقت نداشته باشد اجرا خواهد شد.
کلمه کلیدیdefault :
کلمه کلیدیdefault ، کدی را مشخص می کند که در صورت عدم تطابق حروف اجرا شود
مثال
به عنوان مثال متد getDay روزهای هفته را به صورت عددی بین 0 تا 6 برمی گرداند:
اگر امروز شنبه (6) نباشد و یکشنبه (0) هم نباشد، یک پیام default بنویسید:
نتیجه متن را ببینید:
مورد default، لازم نیست آخرین مورد در بلوک سوئیچ باشد:
مثال
به عنوان مثال اگرdefault آخرین مورد در بلوک سوئیچ نباشد، به یاد داشته باشید که حالت پیشفرض را با یک break پایان دهید:
بلوک های رایج کد:
گاهی اوقات شما می خواهید موارد مختلف سوئیچ را برای استفاده از کد یکسان استفاده کنید. در این مثال، 4 و 5 بلوک کد مشابهی دارند و 0 و 6 بلوک کد دیگری را به اشتراک می گذارند:
تغییر جزئیات
اگر چند مورد با یک مقدار مورد مطابقت داشته باشد، اولین مورد انتخاب می شود.
اگر هیچ مورد منطبقی یافت نشد، برنامه به برچسب پیشفرض ادامه میدهد.
اگر هیچ برچسب پیشفرضی یافت نشد، برنامه پس از سوئیچ به دستور(های) ادامه میدهد.
مقایسه دقیق
موارد سوئیچ، از مقایسه دقیق استفاده می کنند (===) .
مقادیر باید از یک نوع باشند تا مطابقت داشته باشند.
یک مقایسه دقیق تنها زمانی می تواند درست باشد که عملوندها از یک نوع باشند. در این مثال هیچ تطبیقی برای x وجود نخواهد داشت:
به عنوان مثال
نظرات کاربران در رابطه با این دوره