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