مقدمه :
با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش #c ، را دنبال می کنند. در بخشهای قبلی با دستورات شرطی و انواع آنها آشنا شدید. در این بخش قصد داریم شما را با حلقه for که در #C بسیار کاربرد دارد شامل ( حلقه ی for در زبان #C – حلقه for تودرتو – break در حلقه for – حلقه بی نهایت ) آشنا کنیم.
حلقه ی for در #C برای اجرای مکرر یک بلوک از دستورات استفاده می شود و تا زمانی این دستورات اجراء می شوند که شرط ، مقدار false را برگرداند.
ساختار کلی :
مثال :
for(variable initialization;condition;steps) { //execute this code block as long as condition is satisfied } |
همانگونه که در بالا مشاهده می کنید، حلقه شامل سه بخش است: مقداردهی اولیه متغیر، شرط و تعداد مراحل، که توسط علامت ; (semicolon) ار هم جدا شده اند.
- مقدار دهی اولیه متغیر : در این قسمت یک متغیر تعریف و مقداردهی اولیه می شود که در شرط و مراحل بعدی تاثیر می گذارد.
- شرط : یک عبارت شرطی است که دو مقدار منطقی true یا false را برمیگرداند.
- بخش مراحل (steps) : این مراحل الگوی افزایشی را مشخص میکند.
مثال :
for(inti=0;i<10;i++) { Console.WriteLine("Value of i: {0}",i); } |
خروجی :
مثال :
Valueofi:0 Valueofi:1 Valueofi:2 Valueofi:3 Valueofi:4 Valueofi:5 Valueofi:6 Valueofi:7 Valueofi:8 Valueofi:9 |
برای درک بهتر کدها به تصویر زیر دقت کنید:
تشریح حلقه for
همانطور که در مثال بالا می بینید، اولین گام این است که یک متغیر نوع int را تعریف و مقداردهی کنید. در گام دوم شرط گذاری را انجام می دهیم که اگر این شرط درست باشد، به مرحله سوم که اجرای کد ها می باشد وارد می شوید . گام چهارم این است که متغیر int را افزایش دهیم و آخرین مرحله نیز این است که شرط را دوباره بررسی کرده و مراحل را تکرار کنیم.
اولویت بندی بخش های حلقه for میتواند تغییر کند، مثلا میتوان شرط ها و مراحل افزایشی را در براکت {} قرار دهید.
همچنین می توانید متغیر را قبل از حلقه “for” تعریف و مقداردهی کرده و در ادامه شروط و مراحل افزایشی را در حلقه تعریف کنید.
مثال :
inti=0; for(;;) { if(i<10) { Console.WriteLine("Value of i: {0}",i); i++; } else break; } |
حلقه بی نهایت :
همیشه مراقب به حلقه بی نهایت باشید . اگر حلقه شامل مقدار اولیه، شرط یا مراحل افزایشی نباشد حلقه بی نهایت بار تکرار می شود. همچنین، اطمینان حاصل کنید که شرط به درستی بیان شده است زیرا در برخی مواقع شرط به درستی بیان نمی شود تا حلقه را متوقف کند.
مثال :
for( ; ;) { Console.Write(1); } |
خروجی :
مثال :
1111111111111111111..... |
متغیر کنترل برای حلقه for می تواند از هر نوع داده عددی، مانند double, decimal و … باشد.
مثال :
for(doubled=1.01D;d<1.10;d+=0.01D) { Console.WriteLine("Value of i: {0}",d); } |
خروجی :
مثال :
Valueofi:1.01 Valueofi:1.02 Valueofi:1.03 Valueofi:1.04 Valueofi:1.05 Valueofi:1.06 Valueofi:1.07 Valueofi:1.08 Valueofi:1.09 |
بخش مراحل افزایشی در یک حلقه می توانند مقدار یک متغیر را افزایش یا کاهش دهند.
مثال :
for(inti=10;i>0;i--) { Console.WriteLine("Value of i: {0}",i); } |
خروجی :
مثال :
Valueofi:10 Valueofi:9 Valueofi:8 Valueofi:7 Valueofi:6 Valueofi:5 Valueofi:4 Valueofi:3 Valueofi:2 Valueofi:1 |
break در حلقه for :
شما با استفاده از کلمه کلیدی break در حلقه for میتوانید حلقه را متوقف کرده و از ادامه اجراء آن جلوگیری کنید.
مثال :
for(inti=0;i<10;i++) { if(i==5) break; Console.WriteLine("Value of i: {0}",i); } |
خروجی :
مثال :
Valueofi:0 Valueofi:1 Valueofi:2 Valueofi:3 Valueofi:4 |
حلقه for تودرتو :
در زبان #C میتوان حلقه های for را به شکل تودرتو استفاده کرد.
مثال :
for(inti=0;i<10;i++) { for(intj=i;j<10;j++) Console.WriteLine("Value of i: {0}, J: {1} ",i,j); } |
خروجی :
مثال :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | Valueofi:0,j:0 Valueofi:0,j:1 Valueofi:0,j:2 Valueofi:0,j:3 Valueofi:0,j:4 Valueofi:0,j:5 Valueofi:0,j:6 Valueofi:0,j:7 Valueofi:0,j:8 Valueofi:0,j:9 Valueofi:1,j:1 Valueofi:1,j:2 Valueofi:1,j:3 Valueofi:1,j:4 Valueofi:1,j:5 Valueofi:1,j:6 Valueofi:1,j:7 Valueofi:1,j:8 Valueofi:1,j:9 Valueofi:2,j:2 Valueofi:2,j:3 Valueofi:2,j:4 Valueofi:2,j:5 Valueofi:2,j:6 Valueofi:2,j:7 |
چند نکته مهم :
- حلقه تکرار یک بلوک از کدها را تکرار میکند.
- حلقه تکرار for تشکیل شده از یک متغیر تعریف شده و دارای مقدار اولیه ، شرط و مراحل افزایشی یا کاهشی است.
- متغیر تعریف شده در حلقه for میتواند از هر نوع داده عددی باشد.
- با استفاده از کلمه کلیدی break میتوان از حلقه خارج شد.
- استفاده از حلقه های تودرتو در #C مجاز است.
در این قسمت با حلقه تکرار for و ساختار آن در زبان #C آشنا شدید.
در قسمت بعد نوع دیگر از حلقه ها در #C را به نام while معرفی کرده و آن را شرح می دهیم.