از ساختارهای شرطی در زمانی استفاده می شود که بخواهیم در صورت بر قرار بودن شرط یا شرط هایی ، یکسری دستورات خاص اجرا شده و در صورت عدم بر قراری آنها گروه دیگری از دستورات اجرا شوند .
بر حسب شرایط می توان از یکی از ساختارهای دستوری زیر استفاده کرد :
1 ) if ( Condition ) Statment :
از این ساختار در مواقعی که می خواهیم در صورت بر قرار بودن شرط یا شرط هایی یکسری دستورات خاص اجرا شوند ، استفاده می شود . در این حالت در صورت عدم بر قراری شرط های تعیین شده ، هیچ دستوری اجرا نخواهد شد .
شکل کلی استفاده از این ساختار به صورت زیر است :
if ( شرط یا شروط )
{
دستورات مورد نظر که در صورت برقرار بودن شرط ها اجرا می شوند
}
مثال :
< script type="text/javascript" >
var IntNum = 18
if ( IntNum > 10 )
{
document.write (" This Number is
bigger than 10 ")
}
< /script >
2 ) if ( Condition ) Statment 1 else Statment 2 :
از این ساختار در مواقعی استفاده می کنیم که می خواهیم در صورت بر قرار بودن شرط یا شرط هایی ، یکسری دستورات و در صورت عدم بر قراری آن شروط ، گروهی دیگر از دستورات اجرا شوند .
شکل کلی استفاده از این ساختار به صورت زیر است :
if ( شرط یا شروط )
{
دستوراتی که در صورت بر قرار بودن شرط یا شروط اجرا می شوند
}
else
{
دستوراتی که در صورت عدم بر قراری شرط یا شروط اجرا می شوند
}
دستور if تک شرطی را مانند یک عملگر می توان به صورت زیر نیز نوشت .
در این حالت برنامه شرط معرفی شده در پرانتز را چک کرده و در صورت درست بودن آن شرط ، مقدار 1 و در صورت درست نبودن آن مقدار 2 را به متغیر نسبت می دهد .
شکل کلی استفاده از این ساختار به سورت زیر است :
نام متغیر = ( شرط ) ؟ مقدار 1 : مقدار 2
variable name = ( condition ) ? value 1 : value 2 ; دستور if تک شرطی را مانند یک عملگر می توان به صورت زیر نیز نوشت
در این حالت برنامه شرط معرفی شده در پرانتز را چک کرده و در صورت درست بودن آن شرط ، مقدار 1 و در صورت درست نبودن آن مقدار 2 را به متغیر نسبت می دهد .
شکل کلی استفاده از این ساختار به سورت زیر است :
نام متغیر = ( شرط ) ؟ مقدار 1 : مقدار 2
variable name = ( condition ) ? value 1 : value 2 ;
3 ) if ( Condition 1 ) Statment 1 else if ( Condition 2 ) Statment 2 else Statment 3 :
از این ساختار زمانی استفاده می شود که حالت های شروط مورد نظر بیش از یک حالت مختلف است ، که در صورت بر قرار بودن هر گروه از شرط های مورد نظر ، می خواهیم دستورات خاص آن شرط ها اجرا شوند .
در این ساختار ، شرط اول در دستور if ابتدا تعریف شده و هر یک از گروه شرط های دیگر به وسیله یک دستور else if تعیین می شود . در آخر نیز واژه کلیدی else و دستورات مربوط با آن قرار می گیرد ، که در صورت عدم بر قراری تمام گروه شرط های تعیین شده ، دستورات قسمت else اجرا می شوند .
در این ساختار چنانچه هر یک از شرط های یک دستور if یا else if درست باشند ، دستورات مربوط به آن اجرا شده و برنامه از کنترل و اجرای سایر شرط های دیگر خودداری می کند . چنانچه هیچ یک از گروه شرط های تعیین شده درست نباشند ، دستورات بخش else در پایان ساختار اجرا می شوند .
شکل کلی استفاده از این ساختار به صورت زیر است :
if ( گروه شرط های شماره 1 )
{
دستوراتی که در صورت بر قرار بودن گروه شرط های 1 اجرا می شوند
}
else if ( گروه شرط های شماره 2 )
{
دستوراتی که در صورت بر قرار بودن گروه شرط های 2 اجرا می شوند
}
else if ( گروه شرط های شماره 3 )
{
دستوراتی که در صورت بر قرار بودن گروه شرط های 3 اجرا می شوند
}
.
.
.
else
{
دستوراتی که در صورت عدم بر قراری تمام گروه شرط های فوق اجرا می شوند
}
نکته 1 : به تعداد مورد نیاز می توان در این ساختار به وسیله دستور else if شرط و دستورات جدید تعریف کرد .
نکته 2 :استفاده از کروشه در قسمت دستورات شرط if ، فقط در زمانی که دستورات مورد نظر بیش از یک خط هستند ، ضروری است .
نکته 3 : تعیین قسمت else در ساختار فوق اختیاری بوده و می تواند تعریف نشود .
نکته 4 : در زمانی که تعداد حالت های شروط بسیار زیاد هستند ، بهتر است از ساختار 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 استفاده کرد .
قسمت 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 >
همانطور که در قسمت بالا نیز اشاره
شد ، چنانچه یک دستور
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 های فوق ، اجرا خواهند شد
{