به کارگیری از دستورات شرطی در زبان جاوا اسکریپت

سیده آمین ارمان

کاربر نگاه دانلود
کاربر نگاه دانلود
عضویت
2016/05/10
ارسالی ها
1,730
امتیاز واکنش
20,744
امتیاز
795
محل سکونت
البرز
در فصل های گذشته، بیشتر درباره ی برنامه نویسی خطی جاوا اسکریپت صحبت کردیم؛ به عبارت دیگر، کارهایی که در قالب یک خط از کد انجام می شوند مثل اختصاص دادن یک مقدار به متغیر و غیره اما در بسیاری از موارد، می بایست در برنامه ی خود از میان یک یا چند گزینه، یکی را انتخاب کنیم و یا آن که با توجه به شرایط مختلف، بخش خاصی از کد اجرا شود که در چنین شرایطی، ساختار ساده و خطی برنامه دستخوش تغییر خواهد شد.

در موارد این چنین و سایر موارد مشابه، منطق برنامه تغییر می کند و شاید نیاز باشد تا جملاتی را به دفعات متعدد، با مقادیر مختلف تکرار کنیم. در این فصل در رابـ ـطه با مفاهیم Loop (لوپ به معنی حلقه) و دستورات switch و if صحبت خواهیم کرد که وظیفه ی آن ها، کنترل و مدیریت چنین شرایطی است.

منطق برنامه های جاوا اسکریپت معمولاً بدین شکل است که در یک مقطعی از برنامه، می بایست بین چند انتخاب، یکی را برگزینیم و ادامه ی برنامه به آن گزینه ی انتخاب شده بستگی خواهد داشت. به طور کلی، دستورات switch و if را به عنوان دستورات کنترل کننده می شناسند چرا که آن ها می توانند ترتیب اجرای برنامه ها در جاوا اسکریپت را کنترل کنند. به کمک این دستورات، می توان مسیرهای متفاوتی را برای کدهای جاوا اسکریپت تعیین کرد. لوپ ها نیز ساده ترین راه برای چرخ زدن در کدها در یک برنامه هستند.

در این آموزش، ابتدا با مفهوم دستورات شرطی if در زبان جاوا اسکریپت آشنا شده سپس در ادامه ی این فصل،‌ به آشنایی بیشتر با مفاهیم لوپ، سوئیچ و غیره خواهیم پرداخت.

دستورات شرطی if … else در زبان جاوا اسکریپت
دستور if و else به کمک یکدیگر، اکسپرشن های منطقی را ارزیابی می کنند و با توجه به نتیجه ای که از آن ها بدست می آید، بخش های متفاوتی از برنامه را اجرا می کنند. در اغلب اوقات، دستورات if به تنهایی استفاده می شوند، یعنی نیازی به بیان قسمت دوم (else) نیست. اما اگر بخواهیم از دستورات else استفاده کنیم، حتماً می بایست پیش از else، دستور if آمده باشد. ساده ترین سینتکس یک دستور شرطی if بدون else به شکل زیر است:

if (condition) {

}
در اینجا، Condition (کاندیشن یا شرط) می تواند هر عبارتی باشد که در نهایت، برابر یک مقدار بولین (true یا false) ارزیابی شود. اگر نتیجه ی این شرط true باشد (یعنی شرط برقرار باشد)، دستورات داخل براکت های if اجرا می شوند و در صورتی که نتیجه ی شرط false باشد، جاوا اسکریپت کدهای درون براکت های if را نادیده خواهد گرفت و از آن ها رد می شود. حال اگر بخواهیم در صورت false بودن نتیجه ی شرط، کار دیگری انجام شود، از else می بایست استفاده کنیم. مثال زیر را در نظر بگیرید:

var age = 19;
if (age < 18) {
alert("You are not allowed to drive a vehicle.");
} else {
alert("You are of legal age to drive.");
}
در اینجا می خواهیم بررسی کنیم که آیا سن وارد شده زیر 18 سال است یا خیر. در صورتی که سن زیر 18 سال باشد، اجازه ی رانندگی داده نمی شود و اگر بالای 18 سال باشد، حق استفاده از وسایل نقلیه داده می شود؛ همان طور که می بینیم، در اینجا سن وارد شده برابر 19 است، پس زمانی که جاوا اسکریپت به کد if می رسد و شرط آن را بررسی می کند (age < 18)، متوجه می شود که نتیجه ی بولین آن برابر false است. به همین دلیل، کدهای داخل براکت if نادیده گرفته می شوند و جاوا اسکریپت به سراغ else می رود. نتیجه ی شرط این بخش برابر با true است -به عبارت دیگر شرط برقرار است- و به همین دلیل، کد داخل براکت های else اجرا می شوند و عبارت .You are of legal age to drive به کاربر نمایش داده می شود.

بدین ترتیب، با استفاده از دستورات شرطی if … else می توان 2 راه را برای ادامه ی برنامه تعیین کرد که بر اساس نتیجه ی شرط، یکی از راه ها انتخاب خواهد شد. اما گاهی اوقات پیش می آید که می خواهیم چندین حالت مختلف را برای برنامه در نظر بگیریم و بیش از 2 حالت داریم. در این موارد باید چه کرد؟

بسیاری از زبان های برنامه نویسی، علاوه بر if و else دارای یک کیوُرد ترکیبی به نام elseif هستند که با استفاده از آن می توان به تعداد نامحدود، شرط جدید برای برنامه تعریف کرد تا آن که یکی از شرط ها برابر true شود و کد داخل براکت آن به اجرا در آید. اما جاوا اسکریپت از چنین کیوُردی برخوردار نیست.

با این حال، برای تعیین چندین شرط به طور همزمان در جاوا اسکریپت، می توان if و else ها را به طور عادی نوشت و سپس بین آخرین else و جمله ی if بعدی، یک space فاصله گذاشت که به نوعی کار همان elseif را انجام داد:

if (time < 12) {
document.write("Good Morning!");
} else if (time < 17) {
document.write("Good Afternoon!");
} else if (time < 20) {
document.write("Good Evening!");
} else {
document.write("Good Night!");
}
همان طور که می بینیم، در ابتدا یک دستور if با شرط time < 12 تعیین شده و تکه کدی نیز در داخل براکت های آن قرار دارد. سپس در بخش else، پس از آن که خود کلمه ی شرطی را نوشتیم، یک Space (اسپیس یا فاصله) می گذاریم و دستور شرطی بعدی if را می گذاریم و به همین روال، تا هر مقدار شرط که نیاز باشد را تعیین می کنیم. در انتها نیز یک else نهایی می گذاریم که در صورتی اجرا خواهد شد که کلیه ی دستورات شرطی بالا برابر با false گردند.

بدین ترتیب، زمانی که جاوا اسکریپت مقدار متغیر time را می خواند و به این بخش می رسد، از بالا، یک به یک شرط ها را بررسی می کند. حال فرض کنیم که مقدار time برابر 18 باشد. در این صورت، اولین و دومین جمله های شرطی if که دارای شرط time < 12 و time < 17 هستند معادل false خواهند بود و نادیده گرفته می شوند. اما سومین if دارای شرط صحیح و true است و به همین دلیل، جاوا اسکریپت کدهای درون براکت های آن را اجرا می کند. پس از اجرای کد، بخش شرط ها به پایان می رسد و جاوا اسکریپت به سراغ سایر کدهایی که پس از آخرین else قرار دارند می رود.

به بیانی دیگر، اگر 100 شرط مختلف با استفاده از if و else تعیین کنید و تنها اولین شرط معادل true باشد، کدهای درون اولین براکت اجرا می شوند و سایر 99 جمله ی شرطی به طور کل نادیده گرفته می شوند.
 

برخی موضوعات مشابه

بالا