Javascript

|

اموزش جاوا اسکریپت

در این مقاله قصد اموزش حلقه ها یا همان لوپ در جاوا اسکریپت هست.

در زبان برنامه نویسی از حلقه ها برای انجام عملیاتی تکراری بر روی داده های زیاد استفاده میشه.

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

در ادامه ابتدا به syntax لوپ ها در جاوا اسکریپت میپردازیم در انتها با ارائه مثال های متنوع سعی میکنیم که این مطالب رو به صورت کاربردی اموزش بدیم.

در این مقاله در مورد ۲ حلقه ی for و while که از پر کاربردترین حلقه ها در زبان جاوا اسکرپتهست میخواهیم صحبت کنیم.

حلقه ی for :

Syntax های هر کد به این شکل هست که ما یک متغییر حلقه داریم که اون رو متغییر v مینامیم. درون حلقه ی for از ۳ قسمت استفاده میکنیم. در قسمت اول مقدار اولیه مقدار حلقه رو مشخص میکنیم و در قسمت بعدی شرط پایان حلقه رو مشخص میکنیم و در قسمت سوم شکل تغییر کردن متغییر حلقه رو تعیین می کنیم.

و دستورات حلقه ی for رو هم درون اکولاد باز و بسته قرار میدیم.

Var v;

For ( v = start ; v <=end ; v = v + increment)

{

Code to be executed

}

برای مثال

Var I ;

For (i=5 ; i <= 10 ; i++)

{

Document.write(i) ;

}

در اینجا متغییر رو i قرار دادیم گفتیم i=5 و تا زمانی که I <=10 هست در هر دور حلقه مقدار i رو یکی اضافه کن و اون رو چاپ کن. پس خروجی این قسمت از کد اعداد 5 تا 10 هست. و در دور انتهایی حلقه که i به 11 افزایش پیدا میکنه اینجا شرط برقرار نمیشه و از حلقه خارج میشه.

حلقه ی while :

درون حلقه ی while ما فقط یک شرط رو قرار میدیم و تا زمانی که این شرط برقرار باشه این حلقه تکرار خواهد شد.

Var v;

While ( v<= end)

{

Code to be executed

}

به طور مثال در اینجا متغییر حلقه x هست و گفتیم تا زمانی که x کوچکتر مساوی 3 هست این حلقه تکرار بشه و در انتهای حلقه ی while مقدار x رو یکی اضافه میکنیم یعنی ۳ بار که مقدار x اضافه شد مقدار اون به ۴ میرسه و در دور بعد که که مقدار x ۴ هست و ۳ نیست از حلقه خارج میشود. و در اینجا مقادیر ۰ تا ۳ چاپ خواهد شد.

Var x ;

While ( x <= 3 )

{

Document.write(x) ;

X++;

}

دستوراتی درون حلقه قابل استفاده هستند که بهتره با اونها اشنا بشم.

دستور break و دستور continue

در هر کجای حلقه که از دستور break استفاده کنید بلافاصله از تکرار های حلقه جلوگیری میشه و از حلقه خارج خواهیم شد.

زمانی که از دستور continue استفاده میکنیم ادامه ی اون دور از حلقه اجرا نمیشه و به دور بعدی میره.

مثال:

اگر بخواهیم توان دوم یا مجذور اعداد ۰ تا ۱۰ رو در حلقه محاسبه کنیم:

Var I ;

For (i=0 ; i <= 10 ; i++)

{

Document.write(i*I + “<br>”) ;

}

جواب:

0

1

4

9

16

25

36

49

64

81

100

حال میخواهیم همین مثال رو با دستور while پیاده سازی کنیم.

I=0;

While(I <= 10 ) {

Document.write( i*I + “<br>”)

I++ ;

}

خروجی:

0

1

4

9

16

25

36

49

64

81

100

که میبینیم مقادیر خروجی for و while کاملا یکسان هستند.

حال میخواهیم یک بازی ساده و جالب رو با زبان جاوا اسکریپتبنویسیم.

بازی ما به این شکل هست که در یک حلقه که همواره تکرار خواهد شد از user درخواست دریافت یک عدد را خواهیم کرد و تا زمانی که مقداره که کاربر وارد میکنه عددش با عددی که ما در برنامه تعیین کردیم مساوی نباشه از user درخواست میشه که عدد جدیدی رو وارد کنه و زمانی که عدد درستی رو حدس زد از حلقه خارج بشه و برنامه ما خاتمه پیدا کنه.

<script type=”text/javascript”>

Var myNumber=6 , userNumber;

While(true){

userNumber=window.prompt( “عددی را بین 0 تا 10 حدس بزنید: ؛ )

if (myNumber==userNumber) {

alert(“تبریک عدد را درست حدس زدید ... ؛)

Break;

} else {

Alert(“اشتباه حدس زدید !!! “ )

}

}

</script>

در اینجا ۲ متغییر تعریف کردیم. Mynumber عددی هست که ما مقدارش رو تعریف کردیم یعنی 6 و usernumber عددی هست که کاربر وارد میکنه. درون while از مقدار true استفاده کردیم یعنی این حلقه همواره درست هست و همواره باید اجرا شود.

مقدار window.prompt همان طور که در جلسات گذشته (اموزش دستورات ورودی و خروجی در جاوا اسکریپت ) صحبت کردیم باعث میشود مقداری را از کاربر دریافت کنیم و که در اون از کاربر خواستیم عددی را بین 0 تا 10 حدس بزنه و در usernumber ذخیره میشه. بعد با استفاده از دستور if مقدار عدد خودمون رو با مقدار عددی که کاربر وارد کرده مقایسه میکنیم در صورتی که درست بود و یکسان بودند مقداری ظاهر میشه که تبریک عدد را درست حدس زدید و بعد با دستور break از برنامه خارج میشویم و در صورتی که این شرط برقرار نبود به قسمت else این شرط میریم و پیام اشتباه حدس زدید در خروجی چاپ میکند و تا زمانی که 6 را وارد نکنید این دستور همچنان ادامه دارد.

نکته: اگر شرط حلقه را بی نهایت در نظر بگیرید که همواره قدارش true باشه باید درون حلقه یک جایی از دستور break استفاده کنید.

خب مثال بالا برای اشنایی شما با دستور break بود حال یک مثال میزنیم تا با دستور continue اشنا شوید.

در این اسکریپت میخواهیم فقط اعداد فرد رو از 0 تا 20 چاپ کنیم.

<script type=”text/javascript”>

Var I ;

For (I = 0 ; I < 20 ; i++ ) {

If (I % 2 == 0 ) {

Continue ;

}

Document.write ( I + “ <br>” )

}

</script>

در این حلقه مقدار متغییر i هست و گفتیم مقدار 0 تا 20 تکرار بشه درون حلقه گفتیم که اگر باقی مانده ی i بر ۲ مساوی 0 بود این یک عدد زوج هست و از دستور continue استفاده میکنیم و بلافاصله از همین جا دور بعدی حلقه تکرار میشه و به ادامه نمیریم که مقدار i حساب بشه و اگر این شرط برقرار نبود و عدد فرد بود به ادامه ی حلقه میایم که مقدار عدد که فرد هست چاپ میشه.

خروجی:

1

3

5

7

9

11

13

15

17

19

یک برنامه نویس خوب با استفاده مناسب از حلقه ها و ترکیب این حلقه ها با دستورالعمل های شرطی مثل if دستورات break و continue میتونه انواع الگوریتم ها و منطقی که مد نظر داره رو پیاده سازی کنه شما هم باید بتونید با تمرین و تکرار موثر تسلط خودتون رو ئر مورد کار با حلقه ها و عبارات شرطی افزایش بدید.

دریافت آخرین مطالب وبلاگ در کانال داتینه

بهاره شهسواری

بهاره شهسواری ، کارشناس نرم افزار هستم .
از سال 91 مشغول به یادگیری زبان های css ,html , javascript و jquery شدم
و از سال 93 به صورت اختصاصی به فعالیت در حوزه css و html پرداختم. علاوه بر کد نویسی به گرافیک هم علاقه مند هستم.

نظرات
نظر بدهید