img
img
img
img
shape
shape
چهارشنبه ۵ بهمن

برنامه نویسی

دفعات بازدید ۳۲۲

جلسه چهارم برنامه نویسی دستور switch و حلقه while


۱

جلسه چهارم جاوا اسکریپت
دستور switch
در جلسه قبل در مورد اهمیت تصمیم گیری و شرط ها در زبان js صحبت کردیم. یکی از دستوراتی که به ما در تصمیم گیری و اجرای دستورات کمک می کند switch است. این دستور زمانی به کار می آید که میخواهیم حالت های مختلف را بررسی کنیم. و این حالت ها تک مقداری هستند و تعداد زیادی دارند. به عبارت دیگر به جای نوشتن if else های متعدد می توانیم از این دستور. استفاده کنیم که خوانا تر هم می باشد. به مثال زیر توجه کنید.

if(a==1)
{
}
else if(a==2)
{
}
else if (a==3)
{

}
else{
}

به جای اینکه این روند را ادامه دهیم و برای هر مقداری else if بگذاریم می توانیم از ساختار زیر استفاده کنیم.

switch(a)
{
case 1:
    //
    break;
case 2:
    //
    break;
case 3:
    // 
    break;
default:
    //
    break;
}

در اینجا مقداری که می خواهیم بررسی کنیم را داخل پرانتز switch می گذاریم. مقادیر شرطی را در مقابل case می گذاریم. و دستوری را که میخواهیم اجرا شود را بعد از : می نویسیم. در نهایت هر بخش هم با break از قسمت بعدی جدا می کنیم. در نهایت هم می توانیم بگوییم اگر هیچ کدام از این مقادیر نبود مقدار default را اجرا کن.
به عبارت بهتر دو مثال بالا دقیقا مشابه هم هستند.
استفاده از break; به معنی قطع اجرا دقت کنید. اگر از آن استفاده نکنید. هیچ خطایی نمیدهد اما اجرا متوقف نمی شود و به مرحله بعد می رود. یعنی اگر بین قسمت یک و دو break نگذاریم هم دستورات قسمت ۱ اجرا می شود و هم دستورات قسمت ۲. و مثال آبشار تا جایی که break نباشد اجرا ادامه پیدا می کند.
از این ساختار برای جاهایی استفاده می کنیم که دو شرط کار یکسانی انجام میدهد. به مثال زیر توجه کنید.

switch(a)
{
case 1:
case 2:
    break;
case 3:
    break;
default:
    break;
}

در این مثال در حالتی که a یک یا دو باشد یک دستور اجرا می شود.
این جلسه در مورد حلقه های شرطی صحبت خواهیم کرد. یکی دیگر از کارهایی که در برنامه نویسی زیاد انجام میشود تکرار یک سری عملیات به تعداد مشخص یا تا حصول نتیجه ای مشخص است.
پس یا از قبل تعداد حلقه را می دانیم یا نتیجه ای که باید حاصل شود را می دانیم.
برای زمانی که تنها نتیجه را می دانیم از دستور while استفاده می کنیم. برای مثال تا زمانی که کاربر بازی را نباخته است چرخه بازی را ادامه بده. مانند مثال زیر.

while(!game_is_over)
{
// lets play
}

برای این کار شرطی که با وجود آن چرخه باید ادامه پیدا کند را در پرانتز مقابل while می گذاریم. و دستوراتی که باید تکرار شوند را در داخل { } . این شرط ممکن است در صورت عدم تحقق خروج از حلقه بی نهایت بار تکرار شود. در نتیجه باید هنگام استفاده از آن دقت شود. اگر این اتفاق بیافتد برنامه هیچ گاه متوقف نخواهد شد.
برای خروج از حلقه باید از دستور break استفاده کنیم. معمولا این دستور را با یک شرط استفاده می کنند. مثلا اگر عمر بازیکن تمام شد بازی را متوقف کن. یا اگر زمان بازیکن تمام شد بازی را متوقف کن.

while(! game_is_over)
{
//lets play
if(time==0)
    break;
}

دستور دیگری که برای شرط هایی با تعداد مشخص استفاده می شود دستور for است. البته توجه داشته باشید که از همین دستور while می توانیم برای این منظور استفاده کنیم. مثلا اگر می خواهیم یک حلقه ۱۰ بار اجرا شود می توانیم از مدل زیر استفاده کنیم.

let counter=10;
while(counter>0)
{
counter — ;
// do what ever you like 
}

این حلقه ۱۰ بار اجرا می شود. و هر بار از مقدار counter کم می شود تا به صفر برسد و سپس از حلقه خارج می شود. می توان از ورژن ساده تری نیز استفاده کرد. مانند زیر.

let counter=10;
while(counter— >0)
{
// do what ever you like 
}

یا حتی ساده تر کنیم. چرا که گفتیم مقدار صفر برابر با غلط و غیر صفر درست تفسیر می شود. پس داریم.

let counter=10;
while(counter—)
{
// do what ever you like 
}

خروجی یکسان خواهد بود. توجه کنیم که علامت — را در سمت راست قرار دهیم. چرا که اگر در سمت چپ قرار دهیم. حلقه ۹ بار اجرا می شود . علت آن این است که اول از مقدار counter کم می کند و سپس آن را بررسی می کند. در نتیجه بدون آن که دستورات اولین بار اجرا شوند آن را کم می کند. یا می توانیم بگوییم بار آخر که می خواهد بررسی کند شرط غلط می شود و حلقه اجرا نمی شود. به مثال زیر دقت کنید.

let counter=10;
while(counter--)
{
console.log(counter)
// print 9 to 0 
}

let counter=10;
while(—counter)
{
console.log(counter)
// print 9 to 1
}

خوب تمام این ها را گفتیم که بگوییم با while هم میتوان تعداد را مشخص کرد. اما راه متداول استفاده از دستور for است. که در جلسه بعد به آن می پردازیم.

نظرات (۰)

پاسخ