آموزش ColdFusion ، ساختار Switch/Case

ساختار Switch/Case يک عبارت را در برابر چندين شرط، ارزيابي مي کند و سپس کد مربوطه را اجرا مي کند.

مثلا، تکه کد زير را در نظر بگيريد :

تکه کد بالا مقدار myVar را سه بار ارزيابي مي کند و هر بار تست مي کند که آيا مقدار آن برابر مقدار خاصي هست يا نه. کد بالا را مي توان به صورت بهتر مي توان نوشت :

هر دو کد يک کار واحد انجام مي دهند اما ساختار cfswitch بهينه تر مي باشد، زيرا مقدار متغير myVar به جاي سه بار، يک بار ارزيابي مي کند. کلدفيوژن عبارات cfswitch را بسيار بهينه تر از عبارات cfif اجرا مي کند ، زيرا براي اجراي cfif، هر دفعه هر مقدار هر عبارت شرطي را ارزيابي مي کند (true يا false) تا آنجا مقدار يک عبارت true شود، ولي cfswitch ابتدا مقدار عبارت را ارزيابي مي کند (يک بار) و سپس قسمت مطابق با آن را اجرا مي کند.

مقادير ذکر شده در cfcase بايد از نوع ثابت باشند و نمي توانند متغير  و يا عبارت باشند. به عنوان مثال، تکه کد زير مجاز نيست :

در کد زير cfdefaultcase برابر cfelse در ساختار cfif مي باشد.

کد بالا به اين معناست که اگر هيچ يک از مقادير cfcase برابر مقدار عبارت نبودند، بلوک کد مربوط به cfdefaultcase را اجرا کند.

اگر چه ساختار هاي cfswitch مزاياي زيادي دارند، اما در اغلي اوقات نمي توان از آن به جاي cfif استفاده کرد. مثلا به کد زير توجه کنيد :

اين کد را نمي توان به وسيله ساختار cfswitch نوشت. زيرا عبارات شرطي کد بالا چيزي بيشتر از يک مقايسه ي برابري ساده مي باشند.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *