دستور switch در JavaScript
با استفاده از دستور 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";
}
خودتان امتحان کنید »
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 29359
دیدگاهها
سلام. توی آموزش جاوا اسکریپت توابعی ذکر میشه که توضیحی در بارش داده نمیشه. مثل Date() و getDay(). اینها رو باید از قبل بلد باشیم یا اینکه در طول دوره آموزش داده میشند؟ و اینکه لیستی از نوابع به صورت مرجع دارین که همه اونها رو بتونیم توش پیدا کنیم؟
سلام. تمامی این توابع جاوا اسکریپت در فصل شماره 7، از منوی سمت چپ، یعنی در بخش مرجع دستورات javascript توضیح داده شده اند.
سلام میخواستم بدونم متنی که با این اسکریپت نمایش داده میشه چجور میشه وسط چین کرد؟
سلام.
کافیه کد زیر رو در داخل تگ p با آی دی demo قرار دهید، تا متن چاپ شده وسط چین شود:
style="text-align:center;"
سلام واقعا سایت خوبی دارین.
اموزش ویدیویی جاوا اسکیریت چی شد pas؟
قولش رو داده بودین.
سلام من یه سوال در مورد روزهای هفته و اینکه به ای دی چطور مقدار و .... داده بودین پرسیده بودم. میخواستم بگم متوجه شد. شما دیگه زحمت نکشید برای جواب دادن. مرسی از مطالب خوبتون.
با سلام وتشکر از سایت خوبتون یک سوال دارم از شما.اگر میشه یکم واضح تر new را توضیح دهید که چه کاری دقیقا انجام میدهد ؟؟
مرسی
سلام
چون هنوز با مبحث اشیاء در JavaScript آشنا نشده اید، بنابراین حق دارید که کلمه new برایتان سوال برانگیز باشد.
در زبان های شیء گرا، با استفاده از کلمه کلیدی new می توان یک شیء ایجاد کرد. اشیاء متغییرهای خاصی هستند که دارای یکسری Method ها و Property های مشخصی هستند. مثال:switch (new Date().getDay() ) {
...
} در کد بالا، کلمه new باعث می شود تا یک شیء از نوع Date ایجاد شود و در ادامه با فراخوانی متد
()getDay ، روز جاری برگردانده می شود.
برای کسب اطلاعات بیشتر در مورد اشیاء در JavaScript به لینک زیر مراجعه فرمایید:
www.beyamooz.com/javascript/128-object/398
تشکر از از زحمات شما
آیا switch و case ها فقط دارای قابلیت مقایسه نوع عدد میباشند وstring را نمی توانند؟
مرسی
ممنون
در دستور switch هر چیزی می تواند مورد مقایسه قرار گیرد. اما نکته ای که وجود دارد این است که، این مقایسه تنها از لحاظ تساوی انجام خواهد شد.
من متوجه نمیشم بر چه اساسی.getDay مقدار monday رو بر میگردونه؟
دوست عزیز، در مثال خودتان امتحان کنید دوم، ()getDay یک مقدار از 0 تا 6 بر می گرداند که به ترتیب 0 معادل یکشنبه 1 معادل دوشنبه و به همین ترتیب 6 معادل شنبه می باشد.
در این مثال با استفاده از 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) به این صورت آموزش داده است، تغییری در چیدمان مثال ها یا نحوه ی بکارگیری آن ها ایجاد نشده است.