درخواست های ارتباط
جستجو تنظیمات
لیست دوستان من

آموزش جاوااسکریپت - بخش چهارم :: حلقه ی For ، While و Break و Continue

0 نظرات

سلام به همه ی دوستان عزیز ITPRO


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



ما در جلسات قبل با دستورات شرطی ، توابع و عملگر ها آشنا شدیم .


در این جلسه هم آشنایی اولیه ای با حلقه ها پیدا خواهیم کرد.



حلقه ها

تقریبا در تمامی برنامه ها تکرار دیده می شود( مانند پست هایی که در وبسایت ITPRO نشان داده می شوند همه یک شکلند و فقط متن آن ها متفاوت است ) نوشتن برنامه بدون تکرار تغریبا غیر ممکن است. حلقه ها در زبان های برنامه نویسی وظیفه ی تکرار را بر عهده دارند.


حلقه ها



حلقه ی FOR

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


شکل کلی حلقه ی FOR به شکل زیر است :


for (varible; condition;detering varible ) {
    code block to be executed
}

برای مثال در من پروژه ای ایجاد می کنم و فایل های Index.html و Main.js را درون آن ایجاد می کنم. سپس آن ها را به هم لینک می کنم.


فایل Index.html :


<html>
	<head>
		<title>JS For Loop</title>
	</head>
	<body>
		<script src="main.js"></script>
	</body>
</html>

حالا می خواهیم اعداد 0 تا 10 را درون فایل HTML از طریق جاوااسکریپت چاپ کنیم.


برای این کار می توانیم از کد زیر استفاده کنیم :



document.write("0 <br/>");
document.write("1 <br/>");
document.write("2 <br/>");
document.write("3 <br/>");
document.write("4 <br/>");
document.write("5 <br/>");
document.write("6 <br/>");
document.write("7 <br/>");
document.write("8 <br/>");
document.write("9 <br/>");
document.write("10 <br/>");

خب حالا ما اگر بخواهیم این اعداد را با یک " : " همراه کنیم باید در هر 10 خط این کار را انجام دهیم. از آن گذشته اگر من بخواهم این اعداد را تا چند هزار ادامه دهم باید چند هزار بار این کد را بنویسم (و یا کپی کنم).


قطعا روش بالا روش خوبی برای تکرار در برنامه نیست و البته همه جا نیز نمی توانیم از روش بالا استفاده کنیم!


کار حلقه ها دقیقا انجام درست تکرار در برنامه است.


حالا من می خواهم با استفاده از حلقه ی FOR کار برنامه ی غیر بهینه ی بالا را انجام دهم.



for(i = 0;i<=10;i++){
	document.write(i+"<br/>");
}


در قسمت اول حلقه ی بالا من متغیر i را تعریف کردم و در قسمت دوم برای آن شرطی قرار دادم که تا زمانی که متغیر کوچکتر و یا مساوی 10 باشد حلقه اجرا شود. در قسمت آخر هم تایین کردم که این متغیر در هربار اجرای حلقه یکی زیاد می شود تا زمانی که به عدد 11 می رسد و اجرای حلقه متوقف می شود.


در ابتدا که مفسر وارد حلقه می شود متغیر را تعریف و چک می کند که شرط آن برقرار است یا خیر وقتی برقرار بود وارد بدنه ی حلقه می شود. سپس i را که در حال حاضر 0 است چاپ می کند. سپس به بالای حلقه بر می گردد و طبق بخش سوم حلقه یکی به متغیر i اضافه می کند و سپس به بخش دوم بر می گردد تا چک کند که ایا متغیر i( که اکنون 1 است ) از 10 بزرگتر است یا خیر و اگر بزرگتر نبود وارد بدنه ی حلقه می شود و این بار عدد متغیر i که مقدار 1 را داراست را چاپ می کند. این عمل ادامه می یابد تا زمانی که i برابر 10 می شود. و حلقه اجرا می شود و وقتی مفسر به بالای حلقه باز می گردد و یکی به i اضافه می کند ، i برابر 11 می شود پس وقتی شرط را چک می کند شرط برقرار نیست و از حلقه خارج می شود.


خروجی:


loops


دیدیم که اعداد 0 تا 10 چاپ شدند.




حلقه ی While

این حلقه همانطور که از اسمش می توان فهمید تا زمان برقرار بودن شرطی اجرا می شود. البته در اکثر موارد می توان از حلقه های For و While به جای هم استفاده کرد اما در بعضی موارد از این یکی حلقه قابلیت هایی دارد که دیگری ندارد.


شکل کلی حلقه ی While به شکل زیر است :


while (condition) {
    code block to be executed
}

همانطور که در ساختار بالا می بینید این حلقه فقط یک شرط دارد و این شرط می تواند مثل حلقه ی For چک کردن یک متغیر باشد و یا هر چیز دیگری!


برای مثال اگر ما بخواهیم همان برنامه ی بالا را که با حلقه ی For نوشتیم ، با While بنویسیم به شکل زیر خواهیم نوشت :


var i = 0
while(i<=10){
	document.write(i+"<br/>");
	i++
	}

خروجی بالا دقیقا مثل قبلی خواهد بود. اگر دقت کنید خواهید دریافت که ما دقیقا همان کار هارا در این برنامه انجام دادیم یعنی اول متغیری تعریف کردیم و سپس شرط را چک کردیم و در آخر به متغیر یکی اضافه کردیم تا در چک کردن بعدی شرط مقدار آن متفاوت باشد.


خروجی :


while


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



Break و Continue در حلقه ها

Break

گاهی ممکن است ما در طول اجرای برنامه نیاز پیدا کنیم که اجرای حلقه ای را در هر جایی متوقف کنیم. کار دستور Break خارج شدن از داخلی ترین حلقه ای است که Break در آن قرار دارد .


شکل کلی دستور Break را می توانید در بخش زیر ببینید :


break;

برای مثال من می خواهم در برنامه ی بالا در صورتی که عدد برابر 9 بود حلقه ادامه پیدا نکند.


کد بالا را به شکل زیر تغیر می دهم:


var i = 0
while(i<=10){
	if(i != 9){
		document.write(i+"<br/>");
		i++
	}
	else{
		break;
	}
}

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


پس خروجی که ما انتظار دیدن آن را داریم اعداد 0 تا 8 هستند چون وقتی حلقه به عدد 9 می رسد از حلقه خارج می شود.


خروجی :


break


دیدیم که خروجی مطابق انتظار ما بوده است.


Continue

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


حالا برنامه ی بالا را به شکلی تغیر می دهیم که عدد 9 چاپ نشود.


var i = 0
while(i<=10){
	if(i != 9){
		document.write(i+"<br/>");
		i++;
	}
	else{
		i++;
		continue;
	}
}

در کد بالا ما چک کردیم که اگر i برابر با 9 بود i یکی زیاد شده و سپس از یک دور اجرای حلقه خارج شود. توجه کنید اگر در صورت 9 بودن مقدار i ما i را زیاد نکنیم مقدار i برابر 9 می ماند و حلقه ی ما تا ابد ادامه پیدا می کند و مرورگر برنامه ی ما را اجرا نمی کند! پس ما باید در صورت 9 بودن مقدار i یکی به آن اضافه کنیم تا در دفعه ی بعد اجرای حلقه ، مقدار آن 10 شده باشید و بار دیگر شرط ما برقرار گردد.


خروجی :


continue


می بینیم که برنامه ی ما از روی 9 پریده و بعد از 8 عدد 10 را چاپ می کند.



ممنون از همراهی شما


ITPRO باشید


محمد پارسا صفوی


انجمن تخصصی فناوری اطلاعات ایران - ITPRO.ir


آیا این مطلب را پسندیدید؟
ردیف عنوان قیمت
1 آموزش جاوااسکریپت - بخش اول :: آشنایی ، تاریخچه و متغیر ها رایگان
2 آموزش جاوااسکریپت - بخش دوم :: عملگر ها و عبارات شرطی رایگان
3 آموزش جاوااسکریپت - بخش سوم :: Switch ، else if و توابع رایگان
4 آموزش جاوااسکریپت - بخش چهارم :: حلقه ی For ، While و Break و Continue رایگان
هیچ نظری ارسال نشده است

برای ارسال نظر ابتدا به سایت وارد شوید

arrow