حلقه ها در زبان برنامه نویسی TypeScript
گاهی اوقات ممکن است شرایطی بوجود آید که لازم باشد قسمتی از کد چندین بار اجرا شود. به طور کلی دستورهای یک برنامه به صورت دنباله ای اجرا می شوند. برای مثال در یک تابع ابتدا اولین خط از کد، سپس دومین خط و الی آخر. زبان های برنامه نویسی ساختارهای کنترلی مختلفی را فراهم می کنند که اجرای مسیرهای پیچیدهتر را هم ممکن می سازد. در یک زبان برنامه نویسی حلقه ها به ما کمک می کنند تا یک یا گروهی از دستورها را چندین بار اجرا کنیم. در زیر شکل کلی یک حلقه را که در اکثر زبان های برنامه نویسی مشابه است را مشاهده می کنید:
در شکل زیر می توانید انواع حلقه ها و طبقهبندی آن ها را مشاهده کنید:
حلقه محدود (Definite)
یک حلقه که تعداد تکرار آن مشخص است به عنوان حلقه محدود در نظر گرفته می شود. حلقه for یک حلقه محدود است.
ردیف | توضیحات |
1 | حلقه for برای پیادهساز حلقه هایی که تعداد تکرارشان مشخص است، استفاده می شود. |
حلقه نامحدود (Indefinite)
یک حلقه نامحدود زمانی استفاده می شود که تعداد تکرار عملیات مورد نظر مشخص نباشد. برای پیادهسازی حلقه های نامحدود می توان از دستورهای زیر استفاده کرد.
ردیف | توضیحات |
1 | حلقه while حلقه while دستورات را هربار که شرط مشخص شده true باشد، اجرا می کند. |
2 | حلقه do while مشابه حلقه while است با این تفاوت که در اولین اجرای حلقه شرط مشخص شده بررسی نمی شود. |
مثال:
برای درک تفاوت دو حلقه while و do while به مثال زیر توجه کنید.
1 2 3 4 5 6 7 8 | var n:number = 5 while(n > 5) { console.log("Entered while") } do { console.log("Entered do…while") } while(n > 5) |
در کد فوق ما دو حلقه با یک شرط یکسان ایجاد کرده ایم. در حلقه اول چون نتیجه شرط مشخص شده برابر با true نیست کدهای داخل حلقه اجرا نمی شوند. اما در حلقه دوم در اولین اجرا کدهای داحل حلقه اجرا می شوند و سپس شرط مشخص شده بررسی می شود. کد کامپایل شده مثال فوق:
1 2 3 4 5 6 7 8 | //Generated by typescript 1.8.10 var n = 5; while (n > 5) { console.log("Entered while"); } do { console.log("Entered do…while"); } while (n > 5); |
خروجی مثال بالا:
1 | Entered do…while |
دستور break
دستور break به منظور خارج کردن کنترل اجرای برنامه از ساختار یک حلقه استفاده می شود. به عبارت دیگر برای قطع ادامه اجرای حلقه از این دستور استفاده می شود. در زیر سینتکس مربوط به این دستور را مشاهده می کنید:
1 | break |
دیاگرام دستور break
مثال:
برای درک بهتر به مثال زیر توجه کنید.
1 2 3 4 5 6 7 8 | var i:number = 1 while(i<=10) { if (i % 5 == 0) { console.log ("The first multiple of 5 between 1 and 10 is : "+i) break //exit the loop if the first multiple is found } i++ } //outputs 5 and exits the loop |
کد فوق بعد از کامپایل:
1 2 3 4 5 6 7 8 9 | //Generated by typescript 1.8.10 var i = 1; while (i <= 10) { if (i % 5 == 0) { console.log("The first multiple of 5 between 1 and 10 is : " + i); break; //exit the loop if the first multiple is found } i++; } //outputs 5 and exits the loop |
خروجی مثال:
1 | The first multiple of 5 between 1 and 10 is : 5 |
دستور continue
برخلاف دستور break که برای پایان دادن به اجرای یک حلقه استفاده می شود، از دستور continue برای نادیده گرفتن شرایطی خاص استفاده می شود و دستوراتی که بعد از آن تعریف شده باشند اجرا نمی شوند و گام بعدی حلقه تکرار اجرا می شود. زمانی که برنامه به دستور continue می رسد، کنترل اجرا برنامه آغاز حلقه باز می گردد و گام بعد حلقه اجرا می شود. در زیر سینتکس مربوط به این دستور را مشاهده می کنید:
1 | continue |
دیاگرام دستور continue
مثال:
برای درک بهتر به مثال زیر توجه کنید:
1 2 3 4 5 6 7 8 9 | var num:number = 0 var count:number = 0; for(num=0;num<=20;num++) { if (num % 2==0) { continue } count++ } console.log (" The count of odd values between 0 and 20 is: "+count) //outputs 10 |
این مثال تعداد اعداد زوج که بین 0 تا 20 وجود دارد را نمایش می دهد. کد فوق بعد از کامپایل:
1 2 3 4 5 6 7 8 9 10 | //Generated by typescript 1.8.10 var num = 0; var count = 0; for (num = 0; num <= 20; num++) { if (num % 2 == 0) { continue; } count++; } console.log(" The count of odd values between 0 and 20 is: " + count); //outputs 10 |
خروجی مثال:
1 | The count of odd values between 0 and 20 is: 10 |
حلقه بی نهایت
به حلقه ای که بی نهایت بار اجرا شود، حلقه بی نهایت گقته می شود. حلقه های for و while می توانند به برای ایجاد حلقه های بی پایان استفاده شوند.
سینتکس (for)
1 2 3 | for(;;) { //statements } |
مثال (for):
1 2 3 | for (;;) { console.log("This is an endless loop"); } |
سینکتس (while)
1 2 3 | while (true) { //statements } |
مثال (while):
1 2 3 | while (true) { console.log("This is an endless loop"); } |
هیچ نظری ثبت نشده است