برای نوشتن یک برنامه تعاملی، باید با توجه به ورودیهایی که از کاربر یا سیستم دریافت میکنیم، یکسری عملیات انجام دهیم. در واقع گاها با توجه به مقدار دیتا، روند اجرای برنامه عوض میشود. در تمام زبان های برنامه نویسی، برای رویارویی با این موارد از دستورات شرطی استفاده میشود. دستورات شرطی جاوا اسکریپت ، تقریبا مشابه دستورات شرطی در زبانهای برنامه نویسی مثل C هستند. در ادامه بیشتر درباره دستورات شرطی توضیح میدهم.
فرض کنید میخواهیم برنامهای بنویسیم که: ساعت را دریافت کند. اگر ساعت از ۶ بعد از ظهر گذشته بود، یک پیغام چاپ کند.
بنظرتان چطور باید همچین برنامهای را پیاده سازی کنیم؟ وقتی صحبت از “اگر” میشود، در واقع داریم شرط میگذاریم. اگر شرایط اینطور بود، آنگاه بهمان طور عمل کن.
get an hour
If the hour is after 6
Display Message
در ادامه به معرفی انواع دستورات شرطی جاوا اسکریپت میپردازم و بررسی میکنیم چطور باید این شروط را در زبان برنامه نویسی جاوا اسکریپت، پیاده سازی کنیم.
در ادامه به موارد زیر میپردازیم:
- if statement
- else
- operators
- logical conditions
- nested conditions
- switch
- ternary operator
دستورات شرطی جاوا اسکریپت
If statement
عبارت قبلی را با کمک دستور شرطی if مینویسیم.
let d = new Date();
if (d.getHours() >= 18) {
console.log("It's after 6 PM.");
}
در واقع کد بالا بیانگر این مطلب است که اگر شرط( عبارت داخل پرانتز) درست بود، آنگاه بدنه دستور شرطی( داخل براکت) اجرا شود.
else
خب حالا فرض کنید در ادامه کد قبل میخواهیم بگویم اگر ساعت از ۶ بعد از ظهر گذشته بود پیغام قبل را چاپ کن، در غیر این صورت پیغامی را از کاربر بگیر و آن را چاپ کن. یا به عبارت دیگر اگر شرط داخل پرانتز درست نبود، عبارت بعدی را اجرا کن.
در واقع میخواهیم ساختاری مشابه” اگر شرط برقرار بود کار اول را انجام بده، در غیر این صورت کار دوم را” پیاده سازی کنیم. برای اینکار باید از else استفاده کنیم.
let d = new Date();
if (d.getHours() >= 18) {
console.log("It's after 6 PM.");
}
else{
let temp = prompt("Enter your message");
console.log(temp);
}
خروجی کد کاملا وابسته به ساعت(دیتا) است. سینتکس این دستورات شرطی جاوا اسکریپت، را در ادامه میبینید:
همانطور که میبینید، نوشتن دستورات شرطی جاوا اسکریپت( و البته زبان های برنامه نویسی دیگر) را با کلید واژه if شروع میکنیم. در ادامه جلوی if یک پرانتز باز و بسته قرار میدهیم که باید شرط را داخل این پرانتز بنویسید. با یک {} بدنه شرط را مشخص میکنیم. البته اگر این بدنه تنها یک خط باشد، میتوانید {} را هم نگذارید. به مثال زیر توجه کنید:
let d = new Date();
if (d.getHours() >= 18)
console.log("It's after 6 PM.");
Operators
برای نوشتن شرط یا شروط داخل پرانتز، میتوانید از عملگرهایی که در جدول پایین آمده است، استفاده کنید. این عملگرها عملگرهای محاسباتی هستند.
syntax | Operator name |
== |
چک کردن شرط برابری ۲ مقدار |
< |
چک کردن شرط بزرگتر بودن |
> |
چک کردن شرط کوچکتر بودن |
=< |
چک کردن شرط بزرگتری یا تساوی |
=> |
چک کردن شرط کوچکتری یا تساوی |
=! |
چک کردن شرط عدم تساوی |
! |
چک کردن نفی/ مخالف(Negation ) |
توجه داشته باشید اگر بخواهیم تساوی دو عبارت را بررسی کنیم، از عملگر == استفاده میکنیم. این عملگر متفاوت از عملگر = است که برای assignment استفاده میشود.
شروط منطقی
دستورات شرطی جاوا اسکریپت، امکان پیاده سازی شروط منطقی را به برنامه نویس میدهد. در واقع اگر بخواهیم به طور همزمان چندین شرط برقرار باشد، یا اینکه از بین چند شرط حداقل یکی از آنها برقرار باشد، از این عملگرها استفاده میکنیم.
به کد زیر توجه کنید:
let d = new Date();
if ((d.getHours() > 5) && (d.getHours() < 18))
console.log("Good day");
else
console.log("Good evening");
در کد بالا بیان کردیم که اگر ساعت از ۵ صبح گذشته بود و هنوز ۶ بعدازظهر نشده بود، در خروجی صبح بخیر را چاپ کند. در غیر این صورت شب است و برنامه باید شب بخیر را چاپ کند.
اگر دقت کرده باشید در توضیحات بالا دو شرط را به کمک عبارت “و” به هم متصل کردم. در برنامه نویسی این اتصال شروط با کمک && (and) اتفاق میوفتد. وقتی از عملگر && استفاده میکنیم، انتظار داریم به طور همزمان چندین شرط(۲ یا بیشتر) برقرار(true) باشند.
در ادامه زمانی که بخواهیم در شروط را طوری پیاده سازی کنیم که اگر حداقل یکی از آنها درست بود، آنگاه بدنه if اجرا شود، باید بین شروط از عملگر ||(or) استفاد کنیم.
باید توجه داشته باشید، در نوشتن دستورات شرطی جاوا اسکریپت، با کمک or ممکن است چند شرط درست باشند. در این صورت اولین شرط درست مبنای تصمیم گیری موتور جاوا اسکریپت است.
شروط تودرتو
شما میتوانید با ساختارهایی که برای دستورات شرطی جاوا اسکریپت، تا به اینجای کار، یاد گرفتهاید، شروط زیادی را به صورت تو در تو(nested) بنویسید. به مثال زیر توجه کنید:
let d = new Date();
if ((d.getHours() >= 5) && (d.getHours() <= 11))
console.log("Good morning");
else if ((d.getHours() == 12))
console.log("Enjoy your meal");
else if ((d.getHours() >= 13) && (d.getHours() <= 17))
console.log("Good afternoon");
else if ((d.getHours() >= 18 && (d.getHours() <= 21)))
console.log("Good evening");
else
console.log("Good night");
در کد بالا سعی کردیم با توجه به ساعت پیغامی را به کاربر نمایش بدیم. خاطرتان باشد، در شروط تودرتو، قبل از آخرین else لازم نیست کلیدواژه if را قرار دهید. در واقع این قطعه کد زمانی انجام میشود که هیچ یک از شروط بالا برقرار نباشند.
Switch
اگر بخواهیم با توجه به مقادیر مختلف یک متغییر، عملی را انجام دهیم، از این ساختار برای پیاده سازی دستورات شرطی جاوا اسکریپت استفاده میکنیم. به عبارتی switch جایگزین خوبی برای if-elseهای متوالی است.
let value = 2;
let word;
switch (value) {
case 1:
word = "one";
break;
case 2:
word = "two";
break;
case 3:
word = "three";
break;
default:
word = "undefined";
}
console.log(word);
در توضیح این ساختار باید بدانید که شرط را داخل پرانتز و جلوی switch مینویسیم. از کلیدواژه case برای بررسی مقادیر متفاوت شرط استفاده میکنیم. اگر مقدار شرط با مقداری که جلوی هر کدام از case ها نوشته شدهاست برابر بود، افعالی که در ادامه آن کیس بیان شده، انجام میشود. از طرفی برای اینکه بعد از برقراری شرط و انجام دادن فعل مربوط به آن، بررسی case های دیگر انجام نشود، از break استفاده میکنیم.
عملگر سهگانه
گاهی مجبوریم بنا به شرایط متفاوت، مقادیر مختلفی را ذخیره کنیم. فرض کنید یک متغییر داریم به اسم female که بیانگر جنسیت کاربر است. در صورتی که مقدار آن برابر true باشد یعنی کاربر مونث است و اگر مقدار آن برابر false باشد یعنی کاربر مذکر است.
میخواهیم برنامه ای بنویسیم که براساس مقدار female یک مقدار string که بیانگر نوع جنسیت کاربر است را تولید و چاپ کنیم.
در کد پایین این برنامه را به روشی که تابحال با هم یادگرفتیم نوشتهایم:
let female= true; // a variable with the gender information
let genderName;
if (female)
genderName = "female";
else
genderName = "male";
console.log(genderName);
حالا کد بالا را با کمک عملگر سه گانه پیاده سازی میکنیم:
let female= true; // some variable with the gender information
let genderName = (female) ? "female" : "male";
console.log(genderName);
در توضیح ساختار بالا باید بدانید که شرط را قبل از علامت سوال مینویسیم. عملیاتی که در صورت درست بودن شرط باید انجام شود را بعد از علامت سوال مینویسم و با یک علامت : دو عملیات را از هم تفکیک میکنیم. در نهایت عملیاتی که در صورت غلط بودن شرط باید انجام شود را بعد از علامت : مینویسیم.
همانطور که مشاهده میکنید، خروجی دو قطعه کد بالا با هم برابر است. اما قطعه کد پایین خوانایی بیشتری دارد و کوتاهتر است.
در این مقاله تمام سعیام بر این بود که با دستورات شرطی جاوا اسکریپت ، کاربردهایشان و نحوه استفاده از آنها آشنا شوید. امیدوارم به هدفم رسیده باشم.
اگر سوال یا نظری درباره دستورات شرطی جاوا اسکریپت دارید، با من و سایر خوانندگان این مقاله در میان بگذارید. تا یادم نرفته، بنظر شما مقالهی بعدی دربارهی چه موضوعی باشد؟
راستی! تلگرام چ یاب رو برای با خبر شدن از آخرین دورههای آموزشی، محصولات و تخفیف های ویژه دنبال کنید.
منابع: ict.social
ارسال پاسخ
نمایش دیدگاه ها