قبل از اینکه بحث اصی رو شروع کنیم بهتره ذهنیتی در مورد دستورات شرطی داشته باشیم.برای مثال در دنیای واقعی ما میگیم اگر ماشین بخرم به مسافرت خواهم رفت و اگر نخرم جایی نمیروم.الان جملاتی که ما بیان کردیم دقیقا مثل دستورات شرطی در جاوا اسکریپت یا دیگر زبان های برنامه نویسی هستند.
ساختار اصلی دستورات شرطی به شرح زیر می باشد.
if (condition) { // block of code to be executed if the condition is true }
دستورات شرطی در جاوا اسکریپت به شرح زیر می باشند.
- if
- else
- if else
- switch
دستور شرطی if
خب ساده ترین دستور شرطی استفاده از دستور if می باشد که کلیت ان را با یک مثال شرح می دهیم.
<script> var num1 = 10; if( num1==10 ){ document.write("مقدار num1 10 می باشد"); } </script>
در این تکه کد یک متغییر تعریف و مقدار دهی شده است .وقتی کد ها اجرا شوند و به خط دستور شرطی برسد اول شرطی که قرار دادیم را بررسی میکند حال اگر شرط درست باشد کدهایی که برا ان تعریف کرده ایم اجرا میشوند در غیر این صورت از بلاک if بیرون می اید.در این مثال با توجه به اینکه شرط درست می باشد پس کدهای داخل بلاک اجرا می شود که در خروجی ما عبارت “مقدار num1 10 می باشد” نمایش داده می شود.
دستور شرطی if else
از این دستور زمانی استفاده می کنیم که اگر شرطمان برقرار نباشد.بخواهیم دستورات دیگری اجرا شوند.در کد زیر وقتی مفسر به دستور شرطی می رسد ابتدا شرط را چک می نماید در اینجا باتوجه به اینکه مقدار سنی که تعریف کرده ایم 15 می باشد. و شرط دستور برای اجرای دستورات خودش سن بیشتر از 18 است پس شرط ما false شده سپس سراغ else رفته و دستورات ان را اجرا می نماید.
<html> <body> <script type="text/javascript"> var age = 15; if( age > 18 ){ document.write("<b>واجد شرایط رانندگی است</b>"); } else{ document.write("<b>واجد شرایط رانندگی نیست</b>"); } </script> </body> </html>
خروجی کد
واجد شرایط رانندگی نیست
دستور شرطی if else if
از این دستور برای تعریف چند عبارت شرطی استفاده می شود.
مثال- متغیر time را به صورت پیشفرض برابر با مقدار زمانی که ساعت سیستم کامپیوتر خود اعلام می کند قرار دادیم.
حال دستورات شرطی خود را که شامل سه بخش است نوشتیم.بخش اول if که با آن آشنا شدید.این بخش بیان می کند که اگر ساعت سیستم کمتر از 10 بود عبارت” صبح بخیر” در خروجی نمایش بده!
دستور else if نیز بیان می کند که اگر شرط if برقرار نبود من یک شرط دیگر دارم = زمانی که ساعت سیستم کمتر از 20 بود پیغام “روز بخیر” را نمایش بده!
در آخر نیز توسط دستور else می گوییم که اگر شرایط هیچ کدام شرط ها برقرار نبود پیغام “شب بخیر” در خروجی برای ما را نمایش بده!
if (time < 10) { document.write("صبح بخیر"); } else if (time < 20) { document.write("روز بخیر"); } else { document.write("شب بخیر"); }
دستور شرطی switch
این دستور مثل دستور else…if می باشد منتهی وقتی تمام شرط های ما به یک مقدار بستگی داشته باشد بهتر است از ساختار switch استفاده می کنیم.

فلوچارت switch
سینتکس دستور سوئیچ به شرح زیر می باشد.
switch(expression) { case x: // code block break; case y: // code block break; default: // code block }
نحوه اجرای این دستور به این شرح می باشد که عبارت سوئیچ فقط یک بار در وهله اول ارزیابی می شود. مقدار شرط آن با مقادیر هر یک از case ها مقایسه می شود.اگر مطابقت وجود داشته باشد، بلوک کد مرتبط اجرا می شود. اگرمقدار ان با هیچ کدام یک از مقادیر caseها مطابقت نداشته باشد بلوک کد پیش فرض اجرا می شود.
به عنوان مثال متد () getDay روزهای هفته را به صورت عددی بین 0 تا 6 برای ما برمی گرداند. (یکشنبه=0، دوشنبه=1، سه شنبه=2 ..) در ادامه میخواهیم با استفاده از شماره روز هفته ای که این متد به ما می دهد نام روز هفته را به دست بیاوریم.
switch (new Date().getDay()) {
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 را حذف کنید، مورد بعدی حتی اگر ارزیابی با case مطابقت نداشته باشد اجرا می شود.
در دستور سوئیچ کلمه کلیدی default وجود دارد که اگر هیچ یک از مقادیر caseها با مقدار شرط ما مطابقت نداشته باشد ، دستور ان اجرا می شود.
برای مثال متد () getDay روزهای هفته را به صورت عددی بین 0 تا 6 برمی گرداند. اگر امروز نه شنبه (6) باشد و نه یکشنبه (0) انگاه دستوراتی برای 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 (new Date().getDay()) {
default:
text = "Looking forward to the Weekend";
break;
case 6:
text = "Today is Saturday";
break;
case 0:
text = "Today is Sunday";
}
بعضی اوقات ما میخواهیم برای چندین case از دستورات یکسان استفاده کنیم که در این مورد باید case هایی که مد نظرمان هست را پشت سرهم
بنویسیم.مثل این است که داخل شرط if چندین || داشته باشیم که در صورت برقراری هر یک از انها دستورات مد نظر ما اجرا شود.
در مثال زیر اگر مقدار شرط سوئیچ برابر با 4 یا 5 باشد text مقدار “Soon it is Weekend” را در بر خواهد گرفت اگربا 0یا 6 برابر باشد مقدار text ، “It is
Weekend” خواهد شد.
switch (new Date().getDay()) {
case 4:
case 5:
text = "Soon it is Weekend";
break;
case 0:
case 6:
text = "It is Weekend";
break;
default:
text = "Looking forward to the Weekend";
}
مقایسه switch به چه صورت می باشد؟
مقایسه بر حسب عملگر (===) صورت میگیرد. یعنی مقادیر مقایسه شده هم باید از لحاظ مقدار هم از لحاظ نوع داده ای برابر باشند.
مثال
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript switch</h2>
<p id="demo"></p>
<script>
let x = "0";
switch (x) {
case 0:
text = "Off";
break;
case 1:
text = "On";
break;
default:
text = "No value found";
}
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
که در خروجی ما عبارت No value found را خواهیم داشت.
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript switch</h2>
<p id="demo"></p>
<script>
let x = "0";
switch (x) {
case 0:
text = "Off";
break;
case 1:
text = "On";
break;
default:
text = "No value found";
}
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
// خروجی
//No value found
خب به پایان جلسه دستورات شرطی در جاوا اسکریپت رسیدیم .امیدواریم مورد توجه شما عزیزان قرار گرفته شده باشد.
سایر مقالات
nice
ممنون