چرخه ها حلقه با پارامتر (for)


بیایید موقعیتی را تصور کنیم که باید همان کلمه را روی صفحه نمایش دهیم، بیایید کلمه را بگوییم "سلام";، 10 بار. چه کنیم؟
می توانید دستور را 10 بار بگیرید و بنویسید Console.WriteLine("HELLO");

اما اگر شما نه 10 بار، بلکه 20، 30، 40 بار نیاز داشته باشید، چه؟ و اگر 200 بار؟ در این صورت کپی کردن زمان بسیار زیادی طول خواهد کشید. و اگر لازم است که کاربر چند بار برای نمایش اطلاعات روی صفحه انتخاب کند؟ 

برای کنار آمدن با این کار، می‌توانیم از ساختار خاصی به نام loop استفاده کنیم.

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

در زبان برنامه نویسی سی شارپ، دو نوع حلقه وجود دارد: یک حلقه متغیر (for) و یک حلقه شرطی (while و do...while em>)

بیایید آشنایی خود را با چرخه ها از نوع اول شروع کنیم.

یک حلقه با یک متغیر یا با تعداد مشخصی از مراحل (برای).

اغلب اتفاق می افتد که تعداد تکرارهای یک عمل را می دانیم یا می توانیم
محاسبه کنیم. Arial,Helvetica,sans-serif">تعداد تکرار با استفاده از داده هایی که می دانیم. برخی از زبان های برنامه نویسی دستوری دارند که در روسی به نظر می رسد تکرار (تعداد دفعات) - یعنی می توانیم تعداد دقیق تکرارها را مشخص کنیم. 

جالب است که ببینیم این چرخه در سطح ماشین چگونه کار می کند:
1. یک سلول حافظه مشخص در حافظه اختصاص داده می شود و تعداد تکرارها روی آن نوشته می شود.
2. هنگامی که برنامه یک بار بدنه حلقه را اجرا می کند، محتویات این سلول (counter) یک عدد کاهش می یابد.
3. حلقه زمانی به پایان می رسد که این سلول صفر شود.

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

شکل کلی عملگر حلقه for به شرح زیر است:
<پیش> برای (/*expression1*/; /*expression2*/; /*expression3 */) { /*یک دستور یا بلوک عبارات - بدنه حلقه*/; } این ساختار از ما می خواهد:
1. به صراحت یک سلول حافظه را که یک شمارنده خواهد بود اختصاص داد و مقدار اولیه آن را تنظیم کرد.
2. ما یک شرط نوشته ایم که تحت آن بدنه حلقه اجرا می شود.
3. نحوه تغییر مقدار در این سلول را مشخص کنید.

در قسمت عملی سعی می کنیم کلمه "Hello" را 10 بار نمایش دهیم و در کارهای بعدی این ساختار را با جزئیات بیشتری تحلیل خواهیم کرد.

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

به طور معمول، بخش‌هایی از حلقه for  مراحل زیر را انجام می‌دهند: 
1. تنظیم مقدار اولیه. 
2. انجام آزمایش شرط برای ادامه حلقه. 
3. اقدامات حلقه را انجام دهید. 
4. مقدار(های) مورد استفاده در آزمایش را به روز کنید. 
و سپس مراحل 2-4 تکرار می شود تا زمانی که شرط برآورده شود. به محض اینکه شرط نادرست شد، حلقه خاتمه می یابد و دستور زیر دستور حلقه for اجرا می شود.
 
شکل کلی حلقه  برای (/* عبارت 1*/; /* عبارت 2*/; /* عبارت 3*/ ) {       /* یک دستور یا بلوک از دستورات - بدنه حلقه */; }

عبارت 1 مسئول تنظیم مقدار اولیه متغیر حلقه (counter) است، با یک نقطه ویرگول به پایان می رسد.
مثلا :
  • i=0; // متغیر حلقه i مقدار اولیه را برابر با صفر قرار دهید - قبل از آن باید اعلام شود حلقه
  • int i=0; // متغیر i را می توان بلافاصله در هدر حلقه اعلام کرد، اما در این حالت، پس از حلقه اجرا می شود
  • ;  // هیچ مقدار اولیه و اعلانی برای متغیر چرخه وجود ندارد، در این حالت، می توان آن را قبل از چرخه اعلان کرد
عبارت 2 - این شرط برای ادامه حلقه  for است، از نظر صدق آزمایش می شود. مثلا،

i <= 10  // تا زمانی که متغیر i کمتر یا مساوی 10 باشد، حلقه اجرا خواهد شد.
شرط می تواند هر چیزی باشد.

عبارت 3 مقدار متغیر شمارنده را تغییر می‌دهد. بدون این مقدار، حلقه بی نهایت در نظر گرفته می شود. مثلا،

i++;  // هر بار که بدنه حلقه کامل می شود، i 1 افزایش می یابد.

 

در هر قسمت عنوان چند عملگر وجود دارد که با کاما از هم جدا شده اند.< /span>
نمونه‌های عنوان:

برای ( int i = 0; i < 10; i + + ) { ... } - عنوان استاندارد

برای ( int i = 0, x = 1; i < 10; i += 2، x *= 2 ){ ... }  
          // در این مورد، ما از دو متغیر استفاده می کنیم که پس از اجرای بدنه حلقه تغییر می کنند - اینها متغیرهای i و x
هستند.           // متغیر i تغییرات در افزایش 2 - i+=2 - کوتاه برای i=i+2
          // متغیر x با هر مرحله 0.1 برابر افزایش می یابد x=x*2 - به اختصار х*=2
< /span>

N بار تکرار کنید

همه برنامه‌هایی که دارای حلقه for هستند که تاکنون نوشته‌ایم را نمی‌توان جهانی نامید. زیرا تعداد تکرارهای بدنه حلقه را برای خود تعیین می کنیم. اما اگر تعداد تکرارها به مقدار دیگری بستگی داشته باشد چه؟ برای مثال، خود کاربر می خواهد تعداد تکرارهای چرخه را تنظیم کند.
در این صورت چه باید کرد؟ همه چیز بسیار ساده است. به جای مقادیر شروع و پایان عددی، می‌توانیم از هر متغیری استفاده کنیم که کاربر بتواند آن را محاسبه یا تنظیم کند.

به عنوان مثال، ما باید مربع های اعداد را از 1 تا N نمایش دهیم، جایی که مقدار متغیر N از صفحه کلید توسط کاربر.
برنامه به شکل زیر خواهد بود:
  #include <iostream> با استفاده از namespace std. main() { int i,N; // در فاصله؛ متغیر حلقه، N - حداکثر عددی که مربع را برای آن محاسبه می کنیم cin>> N; برای (i = 1; i <= N; i ++) // حلقه: برای همه i از 1 تا N. متغیر i به ترتیب مقادیر 1 تا N را می گیرد. { cout << "عدد مربع "<<i<<" است" <<i*i<<"\n"; // خروجی مربع یک عدد در یک فرمت خاص و انتقال به یک خط جدید } } هنگام ورود به حلقه، عبارت i = 1 اجرا می شود و سپس متغیر i با هر مرحله یک عدد افزایش می یابد (i ++ ). حلقه در حالی اجرا می شود که شرط i <= N درست است. در بدنه حلقه، تنها دستور خروجی، خود عدد و مربع آن را بر اساس فرمت مشخص شده روی صفحه چاپ می کند.
برای مربع یا سایر توانای کم، بهتر است از ضرب استفاده کنید.

برنامه را اجرا کنید و نتیجه کار آن را با مقادیر مختلف متغیر N مشاهده کنید.