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

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

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

در مطالب قبلی دیدیم که چگونه با if و else و ترکیب آنها یعنی elseif دستوراتی شرطی (Conditional Statements) را تعریف میکنیم(برای مطالعه دستور if اینجا کلیک کنید)،  اکنون می خواهیم ببینیم که دستور switch در جاوا اسکریپت چه کاربردی دارد.

دستور switch در جاوا اسکریپت (JavaScript)

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

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

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

مثال برای دستور switch در جاوا اسکریپت

متد ()getDay شماره روز هفته را از بین اعداد 0 تا 6 برمی گرداند. (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 می رسد، از قطعه کد switch خارج می گردد، این کار باعث می شود اجرای کدهای اضافی و همچنین آزمایش کردن case های دیگر که نیازی به امتحان آن ها نیست جلوگیری شود. چنانچه يک دستور case در ساختار switch اجرا شود، برنامه به طور اتوماتيک دستورات تمام case های بعد از آن را نيز اجرا خواهد کرد، مگر اينکه به يک دستور break برسد. برای جلوگيری از اين مسئله، بايد در پايان دستورات هر case از دستور break استفاده کرد.

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

کلید واژه default

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

مثال: متد ()getDay شماره ی روز هفته را (بین 0 تا 6) برمی گرداند. چنانچه تاریخ جاری با هیچ یک از مقادیر case ها (6 و 0) همخوانی نداشته باشد، پیغام پیش فرض نمایش داده می شود.

;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 در یک بلوک باشد.

مثال:

} ( ()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 خاتمه بدهید.

بازدیدها: 300

درباره نویسنده

مطالب مرتبط

نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *