17) آموزش دستور شرطی Switch در جاوااسکریپت
آموزش رایگان جاوااسکریپت
در جلسه قبل راجع به دستور شرطی if یاد گرفتیم؛ اما زمانی که لازم باشه بین 5 ، 6 یا بلوک کد های بیشتر حق انتخاب داشته باشیم، if گزینه مناسبی نیست. این کار با دستور if else قابل اجراس اما به دلیل ناخوانایی و پیچیده شدن کدها از دستور شرطی به نام Switch استفاده میکنیم.
دوره مرتبط و تکمیلی: آموزش کامل دستورات شرطی در جاوااسکریپت ( Switch)
دوره کامل آموزش دستورات شرطی حلقه ها در جاوااسکریپت به همراه کلی مثال کاربردی برای یادگیری عمیق جاوااسکریپت
دستور Switch (سوئیچ)
زمانی که تعداد بلوک کدهای زیادی داشته باشیم و بخوایم در شرایط مختلف ازشون استفاده کنیم بهترین راه استفاده از دستور switch است.
switch(expression) { case x: // code block break; case y: // code block break; default: // code block }
مقداری که داخل پرانتز جلوی switch قرار میگیره، همون شرط ما محسوب میشه و یک یار محاسبه میشه و نتیجه اون با مقادیر جلوی هر case مقایسه میشه و در صورت برابری با هر کدوم دستور زیریش اجرا میشه و اگر با هیچ case برابر نباشه کد مربوط به مقدار default اجرا میشه. به مثال زیر توجه کنید:
switch (new Date().getDay()) { case 0: day = "Today is Sunday"; break; case 1: day = "Today is Monday"; break; case 2: day = "Today is Tuesday"; break; case 3: day = "Today is Wednesday"; break; case 4: day = "Today is Thursday"; break; case 5: day = "Today is Friday"; break; case 6: day = "Today is Saturday"; }
در مثال بالا در هر زمان که شما از متد ()new Date().getDay مقدار عدد همون روز برگشت داده میشه. (البته طبق تقویم میلادی) یکشنبه=0 ، دوشنبه=1 ، سه شنبه=2 و…
یعنی قطعه کد بالا در هر روز از هفته اجرا بشه؛ مقدار عددی همون روز برگشت داده میشه و طبق پیغام های ما، همون پیغام نشون داده میشه.
کلمه کلیدی break
وقتی که یه case با نتیجه شرط switch برابر میشه، کد مربوط به اون case اجرا میشه. کلمه break باعث میشه که دیگه بقیه کد ها در خروجی نشون داده نشه؛ اگه کلمه break را حذف کنیم زمانی که کد مربوط به یک case اجرا بشه بقیه کدهای case های پایینیش هم اجرا میشه. کلمه break رو از مثال بالا حذف میکنیم:
switch (new Date().getDay()) { case 0: text = "Today is Sunday"; case 1: text = "Today is Monday"; case 2: text = "Today is Tuesday"; case 3: text = "Today is Wednesday"; case 4: text = "Today is Thursday"; case 5: text = "Today is Friday"; case 6: text = "Today is Saturday"; }
حالا اگه کدبالا رو روز سه شنبه (Tuesday) اجرا کنید؛ پیغام های زیر نمایش داده میشه.
// Today is Tuesday // Today is Wednesday // Today is Thursday // Today is Friday // Today is Saturday
پس از کلمه کلیدی break برای این مورد استفاده میشه که فقط و فقط کد مربوط به هر case در صورت برابری با عبارت اجرا بشه.
کلمه کلیدی default
معمولا آخر همه دستورات switch از کلمه default استفاده میکنیم. و زمانی کاربرد داره که اگه عبارت جلوی switch با هیچ case برابر نشد، اون موقع کد مربوط به default اجرا میشه
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"; }
اگر قطعه کد بالارو در روز شنبه و یک شنبه اجرا کنید پیغام همون روز رو میگیرید. در غیر این صورت بقیه روز های هفته این کد اجرا بشه پیغام مربوط به default اجرا میشه.
نکته مهم درباره Switch
برای مقایسه های مختلف در دستور switch به این نکته توجه کنید که این دستور بر اساس مقدار و نوع داده مقایسه میکند در واقع (===) از سه مساوی استفاده میکنه.
var x = "0"; switch (x) { case 0: text = "Off"; break; case 1: text = "On"; break; default: text = "No value found"; } // output: No value found
مثال بالا گویای همه چیز است. چون مقدار x برابر با مقدار 0 از نوع string است. اما جلوی case مقدار عدد 0 از نوع number است پس در نتیجه (0===”0″) برابر نیستن. و قطعه کد مربوط به default اجرا میشه.
- اگه چندتا case با مقادیر یکسان داخل Switch باشه فقط اولین case اجرا میشه و بقیه case های مشابه در نظر گرفته نمیشن.
- اگه عبارت switch با هیچ case برابر نشه، قطعه کد مربوط به default اجرا میشه.
- اگه داخل دستور switch از default استفاده نکزده باشیم و مقدار switch با هیچ case برابر نباشه، اون دستور switch نادیده گرفته میشه.
با استفاده از دستور switch میتونید کدهاتون رو بهصورت سازمانیافتهتر و خواناتر بنویسید، به خصوص وقتی تعداد شرایط زیادی دارید. به یاد داشته باشید که استفاده از کلمه کلیدی break برای جلوگیری از اجرای ناخواسته کدهای دیگر caseها ضروری است و default برای پوشش شرایطی که هیچکدام از caseها برقرار نیستند، مفید است. همچنین، نوع دادهها در مقایسهها مهم است و باید توجه ویژهای به این موضوع داشته باشید تا از بروز خطاهای ناخواسته جلوگیری شود.
در نهایت، دستور switch یکی از ابزارهای مهم و پرکاربرد در برنامهنویسی جاوااسکریپت است که به شما امکان میدهد تا منطق شرطی پیچیدهتری را به شکلی سادهتر پیادهسازی کنید.
برای مشاهده لینک دانلود لطفا وارد حساب کاربری خود شوید!
وارد شویدپسورد فایل : ندارد گزارش خرابی لینک
مطالب زیر را حتما مطالعه کنید
7 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
دیدگاهتان را بنویسید لغو پاسخ
برای نوشتن دیدگاه باید وارد بشوید.
سلام خسته نباشید
چرا نمیشه با دستور prompt یه مقدار بگیریم و با سویچ ها براش شرط تعین کنیم. هرکاری میکنم فقط دستور defualt سویچ رو نشونم میده مثل کد :
var day = prompt(“روز های هفته را با شماره وارد کنید”);
switch (day){
case 1:
alert(‘شنبه’)
break;
case 2:
alert(‘یکشنبه’)
break;
case 3:
alert(‘دوشنبه’)
break;
case 4:
alert(‘سه شنبه’)
break;
case 5:
alert(‘چهارشنبه’)
break;
case 6:
alert(‘پنجشنبه’)
break;
case 7:
alert(‘جمعه’);
break;
default:
alert(‘دیگه نداریم ):’);
}
سلام و درود مقدار جلوی case داخل کوتیشن بذارید یعنی “1”
چرا؟ چون عددی که از prompt میگیرید از نوع string هست.
بسیار مچکر . عالی هستید
سلام
وقتتون بخیر میشه لطفا در مورد اون قسمت Text= توضیح بفرمایید. text یه دستور در جاواسکریپت هستش؟
سلام text یه متغیر دلخواه هست
سلام ببخشید در پایان دستور default توی ویدئو شما break رو گذاشتید اما توی مثال نبود
آیا لازمه یا خیر؟
ممنون از زحماتتون
سلام و درود.
اگه default دستور آخر باشه نیازی به break نیست اما اگه بعد default چندتا case داشته باشیم الزام داره