PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : دستور switch



TAHA
10-29-2009, 10:12 AM
switch


دستور switch يکي ديگر از دستورات شرطي جاوااسکريپت است که چندين شرط را براي متغيرها مقايسه مي کند تا نتايج مختلف بدست بيايد. در حقيقت دستور switch از تکرار if else جلوگيري مي کند. در مواردي که شرطها و نتايج آنها کم هستند مي توانيد از دستور if else استفاده کنيد اما براي شرطهاي زياد بهتر است switch را بکار بريد تا کد شما منظم تر باشد.
تنها مشکلي که اين دستور دارد اينست که از نسخه javascript 1.2 به بعد از آن پشتيباني شده که ممکن است بعضي از مرورگرهاي قديمي با اين دستور مشکل داشته باشند، ولي در ايران مشکلي نيست چون مطمئناً به علت استفاده رايگان از مرورگرها، ديگر کسي را پيدا نخواهيد کرد که مرورگر قديمي داشته باشد.
دستور سوئيچ مانند if داراي قسمتهايي است، که اجازه دهيد يک مثالي را بيان کنم و سپس به توضيح بخشهاي مختلف آن بپردازم.
مي خواهيم يک صفحه درست کنيم که به محض ورود کاربر به آن، آنروز هفته را در صفحه نمايش دهد:


<script language="javascript" type="text/javascript">

var d = new Date ()
var weekday = d.getDay ()

switch ( weekday )
{
case 0 :
document.write ("Sunday")
break
case 1:
document.write ("Monday")
break
case 2:
document.write ("Tuesday")
break
case 3:
document.write ("Wednesday")
break
case 4:
document.write ("Thursday")
break
case 5:
document.write ("Friday")
break
default:
document.write ("Saturday")
}
</script>

<A title="Click here" style="TEXT-DECORATION: none" href="http://www.iranw3.com/jstut/example/js09ex.htm" target=_blank>

خب حالا بپردازيم به توضيح کد تا ببينيم که چه اتفاقي افتاده است. ابتدا توسط شئ Date ، تاريخ و زمان سيستم را در يک متغير بنام d ذخيره کرديم و سپس در خط بعدي توسط متد getDay اين شئ ، عدد روز هفته را از سيستم بدست آورديم و در متغير weekday ذخيره کرديم. دقت کنيد که اين متد عدد برميگرداند نه خود روزهاي هفته را و در نظر داشته باشيد که مفسر جاوااسکريپت روز اول هفته را يکشنبه ميداند و عدد 0 را به آن تعلق ميدهد و روز دوشنبه را عدد يک و به همين ترتيب تا آخرين روز هفته که شنبه باشد عدد 6 را ميدهد.
اکنون نوبت به بررسي شرط رسيده که مي خواهيم از دستور سوئيچ استفاده کنيم. ابتدا خود دستور را مي نويسيم يعني همان کلمه switch و سپس يک پرانتز باز مي کنيم تا متغيري که بايد در شرايط مختلف بررسي شود را در آن بنويسيم. براي نظم اسکريپت يک آکلاد هم باز مي کنيم ولي در آخر اين مجموعه آنرا مي بنديم.
case


همانطور که مشاهده مي کنيد از کلمه case بجاي if else استفاده مي کنيم و حالت مختلف شرط را در جلوي آن مي نويسيم و سپس علامت : مي گذاريم. در حقيقت ما اينجا به مفسرجاوااسکريپت مي گوييم که اگر متغير ما که روزهاي هفته است برابر با صفر بود، نتيجه اين مي شود که بايد کلمه Sunday را در صفحه چاپ کني، در غير اينصورت برو حالت بعدي يعني case بعدي را مقايسه کن.
<A name=break>break


دستور break يکي از بخشهاي switch است که به مفسر جاوااسکريپت مي فهماند که در کجا قسمت case تمام مي شود و يک قسمت ديگر شروع مي شود، در حقيقت از تداخل قسمتهاي مختلف جلوگيري مي کند. دقت کنيد که شما هم بايد آنرا قبل از شروع case بعدي بنويسيد.
<A name=default>default


دستورات case را همينطور ادامه مي دهيد تا به جايي برسيم که کليه حالتها بررسي شده باشد و به عنوان آخرين حالت که ممکن است پيش بيايد ما يک نتيجه اي را در نظر مي گيريم، يعني در حقيقت else آخر مي باشد. در اينجا چون مثال ما روزهاي هفته است و از هفت روز عادي هفته نمي تواند خارج باشد، آخرين روز را که شنبه باشد براي اين حالت در نظر گرفتيم و مفهوم آن اينطور است که 6 روز هفته را بررسي کن اگر هيچ کدام از آنها نبود، روز شنبه را براي نتيجه اعلام کن.
و در آخر هم آکلاد باز شده را مي بنديم تا پايان اين مجموعه از دستور سوئيچ مشخص شود.
در نظر داشته باشيد که دستورات شرطي بسيار کاربرد دارند و حتي ممکن است در يک اسکريپت چندين بار از اين دستورات استفاده کنيد.