دستورات مقدماتی Java Script
ساختار کنترلی switch :
ار اين ساختار در زمانی استفاده می شود که بخواهيم بر حسب مقادير مختلف يک متغير يا
عبارت خاص ، دستورات متفاوتی اجرا شود .
شکل کلی استفاده از اين ساختار به صورت زير است :
switch ( نام يک متغير يا يک عبارت )
{
case مقدار 1 :
case 1 دستورات مربوط به
case مقدار 2 :
case 2 دستورات مربوط به
.
.
.
.
case n مقدار :
case n دستورات مربوط به
default :
دستورات پيش فرض ساختار که
در صورت عدم برقراری مقادير تمام case های فوق ، اجرا خواهند شد
}
نحوه عملکرد اين ساختار به شرح زير است :
ابتدا در پرانتز مقابل واژه کليدی switch ، يک متغير يا عبارت اعلام می شود . همچنين
در هر دستور case ، يک مقدار مرتبط با آن متغير نيز تعيين می شود . برنامه مقدار متغير
را ( که از قبل توسط يک تابع يا دستور مقدار دهی شده است ) را با مقدار تعيين شده برای
هر case به ترتيب مقايسه کرده و در صورت برابر بودن آنها ، دستورات آن
case و case های بعد از آن را اجرا می کند . در واقع دستورات تا زمان رسيدن
به يک دستور break اجرا می شوند .
نکته : برای جلوگيری از اجرای case های بعدی همراه با case
ای که اجرا می شود ، بايد در پايان دستورات هر case از واژه کليدی break استفاده کرد
. برای دريافت توضيحات بيشتر ، به قسمت توضيح دستور break در پايين صفحه برويد .
قسمت default ، دستورات پيش فرض ساختار را تعيين می کند ، که در صورت عدم برقراری مقادير
تمام case های ساختار ، دستورات آن قسمت اجرا خواهد شد .
نکات مهم :
- نوع متغير تعيين شده در قسمت switch و مقدارهای هر يک از case ها بايد با هم يکسان
و از يک نوع باشند .
- به تعداد مورد نياز می توان از دستور case در ساختار switch استفاده کرد .
- تعيين قسمت default در ساختار switch ، اختياری است و می تواند تعيين نشود .
- مقدار هيچ دو case متفاوتی ، نبايد با هم يکسان باشد .
مثال : در مثال زير دو کادر متن و يک دکمه فرمان قرار داده شده است
. کادر متن اول يک متن يا عدد از کاربر دريافت کرده و با کليک بر روی دکمه فرمان و
فراخوانی تابع ( ) hello ، خروجی در کادر متن دوم نمايش داده
می شود .
عملکرد تابع ( ) hello به شرح زير است :
اين تابع مقدار کنترل کادر متن اول يعنی txtinput ، را در متغير matn
ذخيره کرده و سپس در يک ساختار switch ،بر حسب مقادير مختلف خروجی را در کادر متن دوم
يعنی txtresult نمايش می دهد .
توجه : در اينجا به دليل عدم استفاده از دستور break در پايان
دستورات هر case با اجرای هر کدام از case های مثال ، دستورات بقيه case ها نيز اجرا
می شود . بنابراين همواره خروجی ما در اين حالت خروجی قسمت default است .
< input type="text" id="txtinput " / >
< input type="button" name="clickme" onclick="hello( )" value="click
me !" / >
< input type="text" id="txtresult" / >
< script type="text/javascript" >
function hello( )
{
var matn
= txtinput.value ;
switch (matn)
{
case "1":
txtresult.value
= "one" ;
case "2":
txtresult.value
= "two";
case "3":
txtresult.value
= "three";
default:
txtresult.value
= "bigger than 3";
}
}
< /script >
|
|
|
دستور break :
همانطور که در قسمت بالا نيز اشاره شد ، چنانچه يک دستور case در ساختار switch اجرا
شود ، برنامه به طور اتوماتيک دستورات تمام case های بعد از آن را نيز اجرا خواهد کرد
، مگر اينکه به يک دستور break برسد . . برای جلوگيری از اين مسئله ، بايد در پايان
دستورات هر case از دستور break استفاده کرد .
در اين حالت در صورت وارد شدن برنامه به يک دستور يک case ، فقط دستورات آن case اجرا
شده و اجرای بقيه case ها متوقف می شود .
شکل کلی استفاده از دستور break به صورت زير است :
switch ( نام يک متغير يا يک عبارت )
{
case مقدار 1 :
case 1 دستورات مربوط به
break ;
case مقدار 2 :
case 2 دستورات مربوط به
break ;
.
.
.
.
case n مقدار :
case n دستورات مربوط به
break ;
default :
دستورات پيش فرض ساختار که
در صورت عدم برقراری مقادير تمام case های فوق ، اجرا خواهند شد
}
مثال : در مثال زير ، مثال قسمت قبل را با دستور break بازنويسی کرده
ايم . همانطور که در خروجی مشاهد می کنيد ، در اين حالت به دليل استفاده از دستور braek
در پايان هر case ، فقط دستورات آن case اجرا شده و از اجرای دستورات case های ديگر
جلوگيری می شود . برای مشاهده خروجی در کادر متن txtinput متنی را وارد کرده و سپس
بر روی دکمه فرمان کليک کنيد .
< input type="text" id="txtinput " / >
< input type="button" name="clickme" onclick="hello( )" value="click
me !" / >
< input type="text" id="txtresult" / >
< script type="text/javascript" >
function hello( )
{
var matn
= txtinput.value ;
switch (matn)
{
case "1":
txtresult.value
= "one" ;
break ;
case "2":
txtresult.value
= "two";
break ;
case "3":
txtresult.value
= "three";
break ;
default:
txtresult.value
= "bigger than 3";
}
}
< /script >
|
|
|