درس ششم- جملات شرطی
تا به این درس با تعدادی از مفاهیم ابتدایی و مقدماتی جاوا اسکریپت آشنا شدیم. در این درس میخواهیم مفهوم پایهای در برنامه نویسی یعنی جملات شرطی را مرور کنیم.
جملات شرطی در جاوا اسکریپت
ما در زندگی روزمره خود بارها از دستورات شرطی استفاده میکنیم. برای نمونه میگوییم: اگر ورزش کنی سلامت میمانی. جملات شرطی دارای یک شرط و یک (یا چندین) عمل هستند که بعد از شرط آورده (اجرا) میشوند و در صورت برقرار بودن شرط است که عمل صورت میگیرد. همانطور که میبینید جمله شرطی گفته شده (اگر ورزش کنی سلامت میمانی) از دو قسمت تشکیل شده است؛ اگر ورزش کنی (شرط جمله)، سلامت میمانی (دستور یا عمل مربوط به شرط). این منطق دقیقا در زبانهای برنامه نویسی از جمله در زبان برنامه نویسی جاوا اسکریپت استفاده شده است. شیوه استفاده از جملات شرطی در جاوا اسکریپت به این شکل است که ابتدا یک شرط بیان میشود و بعد در صورت درست بودن آن شرط عملی انجام میشود. بطور کلی میتوان گفت که جملات شرطی برای اجرای دستورات متفاوت بر اساس شرطهای متفاوت استفاده میشوند. البته دستورات شرطی به چند نوع تقسیم میشوند که در هر نوع نگارش کدنویسی آن متفاوت است.
انواع جملات شرطی در جاوا اسکریپت
در جاوا اسکریپت چهار نوع جملات شرطی وجود دارند که به شرح زیر میباشند:
۱- اگر (شرط) آنگاه (عمل):
if (شرط)
{
دستوری که در صورت درست بودن شرط اجرا می شود
}
این نوع جمله شرطی در صورتی استفاده میشود که شما بخواهید در ازای درست بودن شرط یک عمل انجام شود (کدها اجرا شوند).
<!DOCTYPE html>
<html>
<body>
<script>
var x = 5 ;
if ( x == 5 )
{
document.write(' برابر 5 است x ');
}
</script>
</body>
</html>
در نمونه بالا ابتدا یک متغیر درست و به آن مقدار ۵ داده شده است بعد در جمله شرطی آمده که اگر مقدار متغیر برابر ۵ بود یک پیغام چاپ کند. همانطور که میبینید این نوع جملات شرطی یک شرط دارند که در صورت درستی آن عملی انجام میشود یعنی فقط درست بودن شرط است که باعث ایجاد عمل میشود.
۲- اگر (شرط) آنگاه (عمل) در غیر اینصورت (عمل دیگری):
if (شرط)
{
دستوری که در صورت درست بودن شرط اجرا می شود
} else
{
دستوری که در صورت نا درست بودن شرط اجرا می شود
}
در این نوع جملات شرطی مانند نوع یکم یک شرط بررسی میشود که در صورت درست بودن آن عملی انجام میشود. تنها فرق این نوع جملات شرطی با نوع یکم اینست که در نوع دوم اگر شرط درست نباشد هم یک عمل انجام میشود.
<!DOCTYPE html>
<html>
<body>
<script>
var x = 6 ;
if ( x == 5 )
{
document.write(' برابر 5 است x ');
}
else
{
document.write(' برابر 5 نیست x ');
}
</script>
</body>
</html>
در مجموعه کدهای بالا ابتدا مقدار متغیر x برابر ۶ قرار داده شده است و بعد در داخل جمله شرطی مقدار آن بررسی شده است: اگر x برابر ۵ است یک پیغام چاپ میشود و در غیر این صورت پیغام دیگری چاپ میشود. یعنی در صورت برقرار نبودن شرط باز عملی انجام میشود و این فقط درست بودن شرط نیست که باعث انجام عمل میشود.
۳- اگر (شرط) آنگاه (عمل) در غیر این صورت اگر (شرط) آنگاه (عمل دیگری) ..... در غیر این صورت (عمل دیگری):
if ( شرط ) {
دستوری که در صورت درست بودن شرط اجرا می شود
} else if ( شرط ) {
دستوری که در صورت درست بودن شرط دوم اجرا می شود
} else {
دستوری که در صورت نا درست بودن همه شرط ها اجرا می شود
}
نوع سوم جملات شرطی در اصل از چند جمله شرطی پی در پی تشکیل شده است. بدین ترتیب که چند شرط پشت سر هم بررسی میشود هر جا که شرطی برقرار بود دستور مربوط به آن شرط انجام میشود، در صورت برقرار نبودن همه شرطها دستور آخر که مربوط به «در غیر این صورت است» اجرا میشود.
اجازه بدهید با نمونهای شرایط مختلف جملات شرطی نوع سوم را بررسی کنیم:
<!DOCTYPE html>
<html>
<body>
<script>
var x = prompt ( " یک عدد وارد کنید " ) ;
if ( x == 0 )
{
document.write(' عدد وارد شده صفر است ');
}
else if (x < 0)
{
document.write(' عدد وارد شده منفی است ');
} else {
document.write(' عدد وارد شده مثبت است ');
}
</script>
</body>
</html>
مجموعه کدهای بالا ابتدا یک عدد را توسط دستور (propmt) از کاربر درخواست میکند و آن را در داخل متغیر (x) قرار میدهد. بعد در داخل جملات شرطی ابتدا صفر بودن عدد را بررسی میکند که اگر اینطور باشد پیغام (عدد وارد شده صفر است) را چاپ میکند. در صورتی که عدد وارد شده صفر نباشد سراغ شرط بعدی میرود که در آن منفی بودن عدد را (x < 0) بررسی میکند و اگر این طور باشد پیغام (عدد وارد شده منفی است) را چاپ میکند. در صورتی که هیچ کدام از شرطهای پیشین درست نباشند پیغام (عدد وارد شده مثبت است) چاپ میشود.
جملات شرطی تو در تو
در صورتی که بخواهیم شرطی را درون شرط دیگری بررسی کنیم از جملات شرطی تو در تو استفاده میکنیم. این یعنی در داخل یک شرط، شرط دیگری را بررسی میکنیم. بطور نمونه فرض کنید میخواهید زوج بودن عددی را بعد از مثبت بودن آن بررسی کنید. ابتدا با یک شرط مثبت بودن عدد را در مییابیم اگر این طور بود شرط زوج بودن آن را داخل همان شرط بررسی میکنیم:
<!DOCTYPE html>
<html>
<body>
<script>
var x = prompt ( " یک عدد وارد کنید " ) ;
if ( x > 0 )
{
if ( x % 2 == 0) {
document.write(' عدد وارد شده زوج است ');
} else {
document.write(' عدد وارد شده فرد است ');
}
} else if (x == 0) {
document.write(' عدد وارد شده صفر است ');
} else {
document.write(' عدد وارد شده منفی است ');
}
</script>
</body>
</html>
در مجموعه کدهایی که در بالا نوشتهایم ابتدا مثبت بودن عدد را با شرط x > 0 بررسی میکنیم؛ اگر عدد مثبت باشد (بزرگتر از صفر باشد) وارد بلوک کدهای جمله شرطی مربوطه (x > 0) شده و شرط دیگر که باقیمانده تقسیم عدد بر دو باشد را بررسی میکند. در زیر حالتهایی که ممکن است اتفاق بیافتد را میآوریم:
- ۱- اگر عدد بزرگتر از صفر بود و اگر باقیمانده تقسیم آن بر دو صفر بود پیغام (عدد وارد شده زوج است) را چاپ میکند.
- ۲- اگر عدد بزرگتر از صفر بود و اگر باقیمانده تقسیم آن بر دو صفر نبود پیغام (عدد وارد شده فرد است) را چاپ میکند.
- ۳- اگر عدد بزرگتر از صفر نبود. اگر عدد برابر صفر بود پیغام (عدد وارد شده صفر است) را چاپ میکند.
- ۴- در غیر این صورت پیغام (عدد وارد شده منفی است) را چاپ میکند.
همانطور که مشاهده میکنید در قسمت ۱ و ۲، شرطی تو در تو اتفاق میافتند یعنی در صورت برقرار بودن شرط ابتدایی وارد شرط دوم که درون شرط ابتدایی است، میشویم.
نکته: در مورد تعداد استفاده از جملات شرطی باید بگوییم که شما میتوانید به دفعات دلخواه از این فن استفاده کنید، اما بیاد داشته باشید که استفاده زیاد از حد باعث کند شدن اجرای برنامه میشود. چراکه سیستم درگیر بررسی شرطهای مختلف میشود.
نکته: نقطه اشتراک هر سه نوع شرطی بالا استفاده از عبارت if برای بررسی شرطها است.
۴- شرطی نوع چهارم: شرطی چند گانه Switch Statement
این نوع شرطی، عملهای مختلف را بر طبق شرایط مختلف انجام میدهد. در زمانهایی که میخواهیم یک عمل را در میان مجموعهای از اعمال انتخاب کنیم از این نوع شرطی استفاده میکنیم. بطور نمونه تصور کنید که میخواهید برنامه بنویسید که در آن امروز (از روزهای هفته) را نمایش دهد. در این برنامه انتخاب روز از میان روزهای هفته میباشد که هفت انتخاب میباشند.
switch (مورد شرط)
{
case 1شرط:
کدها
break;
case 2شرط:
کدها
break;
default:
حالت پیش فرض (در صورتی که هیچکدام از شرط ها برقرار نشد)
}
نکته: در این نوع شرطی از عبارت switch برای در نظر گرفتن مورد شرط، عبارت case برای بررسی شرطها، عبارت break برای خارج شدن از بلوک شرط و از عبارت default برای حالت پیش فرض (در صورتی که هیچ کدام از شرطها برقرار نباشد) استفاده میشود.
همانطور که میبینید یک مقدار به عنوان مورد شرط در نظر گرفته میشود و بعد در هر قسمت با کمک عبارت case شرط مورد بررسی قرار میگیرد. به این نوع شرطی، شرطی چندگانه گفته میشود، زیرا با استفاده از یک مقدار چندین شرط بررسی میشود.
<!DOCTYPE html>
<html>
<body>
<script>
var day = new Date().getDay() ;
switch (day)
{
case 0 :
x = " یکشنبه " ;
break ;
case 1 :
x = " دوشنبه " ;
break ;
case 2 :
x = " سه شنبه " ;
break ;
case 3 :
x = " چهار شنبه " ;
break ;
case 4 :
x = " پنج شنبه " ;
break ;
case 5 :
x = " جمعه " ;
break ;
case 6 :
x = " شنبه" ;
break ;
}
document.write ( + " است " x "امروز " + );
</script>
</body>
</html>
نکته: بهترین راه برای دریافت هر چه بهتر مفاهیم، استفاده آنها و دیدن چگونگی اجرای آنها بصورت عملی است. پیشنهاد میکنیم که کدهای داده شده در هر درس را پیاده و با انجام تغییراتی در آنها بیشتر با طرز کار آنها آشنا شوید.
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.