آموزش C++ حلقه ها

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

فلوچارت تعریف یک حلقه ساده در سی پلاس پلاس
زبان c++ انواع مختلفی از حلقه ها را برای تکرار دستورات شرطی ارائه می دهد:

ردیف نوع حلقه و توضیحات
1

حلقه while

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

2

حلقه for

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

3

حلقه do…while

عملکرد آن همانند حلقه while است با این تفاوت که شرط  حلقه در آخر بررسی می شود.

4

حلقه های تودرتو

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

دستور حلقه while

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

فلوچارت حلقه while در c++

دستور while

نحوه نگارش یک حلقه while در C++ همانند زیر است:

while(condition) {
   statement(s);
}

در اینجا دستورات ممکن است یک جمله و یا مجموعه ای از دستورات باشد و شرط حلقه هر عبارتی می تواند باشد به شرط آن که true بودن آن هر مقداری غیر از صفر باشد. حلقه تا زمانی که شرط true باشد اجرا می شود.
زمانی که شرط حلقه false شود، برنامه به خط بعدی حلقه منتقل می شود.

نکته مهم و اصلی حلقه while این است که ممکن است حلقه هیچ‌گاه اجرا نشود. زمانی که شرط حلقه بررسی می شود و نتیجه آن false باشد، دستورات درون حلقه نادیده گرفته شده و دستور بعد از حلقه اجرا می شود.
 

#include <iostream>
using namespace std;
 
int main () {
   // Local variable declaration:
   int a = 10;
   // while loop execution
   while( a < 20 ) {
      cout << "value of a: " << a << endl;
      a++;
   }
 
   return 0;
}

 پس از کامپایل و اجرای کد بالا نتیجه زیر نمایش داده می شود:

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19

دستور حلقه for

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

فلوچارت حلقه for در C++

نحوه نگارش دستور حلقه for

نحوه نگارش دستور حلقه for در C++ به صورت زیر است:
 

for ( init; condition; increment ) {
   statement(s);
}

توضیح نگارش حلقه for در بالا به صورت زیر است:

  • init: در ابتدا و تنها یک بار انجام می شود. این مرحله به شما اجازه می دهد تا متغیرهایی را برای کنترل حلقه اعلان کنید. تا قبل از علامت سمیکالن نیازی به قرار دادن دستورات ندارید.
  • condition: سپس شرط حلقه بررسی می‌شود و اگر true باشد دستورات درون حلقه اجرا می شود و اگر false باشد دستورات درون حلقه اجرا نمی‌شود و جریان اجرای برنامه به دستور بعد از حلقه منتقل می شود.
  • increment: بعد از این که دستور درون حلقه اجرا شد، جریان کنترل به حالت پیش فرض منتقل می شود که این دستورات می توانند تا قبل از سمیکالن خالی بمانند و سپس گام حلقه اضافه می شود.
  • اکنون شرط دوباره بررسی می شود و اگر true باشد فرایند تکرار انجام می شود (دستورات درون حلقه، افزایش گام حلقه، بازگشت به شرط حلقه) و زمانی که شرط false شود حلقه به پایان می رسد.

جریان حلقه

فلوچارت حلقه for در c++

مثال
 

#include <iostream>
using namespace std;
 
int main () {
   // for loop execution
   for( int a = 10; a < 20; a = a + 1 ) {
      cout << "value of a: " << a << endl;
   }
 
   return 0;
}

پس از کامپایل و اجرای کد بالا نتیجه زیر نمایش داده می شود:

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19

دستور حلقه  do... While

برخلاف حلقه ‌های for و while که ابتدا شرط حلقه را بررسی می کنند، دستور حلقه do... While شرط حلقه را در انتهای دستورات بررسی می‌کند.
حلقه do... while  شبیه حلقه while است با این تفاوت که دستورات حلقه do... while حداقل یکبار اجرا می شوند.

نحوه نگارش دستور  do... While

نحوه نگارش دستورات do... While به شرح زیر است:
 

do {
   statement(s);
} 
while( condition );

توجه داشته باشید که عبارت شرطی در انتهای حلقه ظاهر می شود، بنابراین دستورات در حلقه یکبار قبل از بررسی شرط اجرا می شود.
اگر شرط حلقه true باشد، جریان حلقه دوباره به دستور do منتقل می شود و این فرایند تا زمانی که شرط حلقه false شود ادامه دارد.

جربان حلقه  do...While

فلوچارت حلقه do while در c++

#include <iostream>
using namespace std;
 
int main () {
   // Local variable declaration:
   int a = 10;

   // do loop execution
   do {
      cout << "value of a: " << a << endl;
      a = a + 1;
   } while( a < 20 );
 
   return 0;
}

پس از کامپایل و اجرای کد بالا نتیجه زیر نمایش داده می شود:

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19

حلقه های تو در تو

منظور از ایجاد حلقه های تودرتو این است که یک حلقه را می توان در حلقه دیگری قرار داد. در برنامه نویسی C++ می توان تا 265 سطح حلقه تو در تو ایجاد کرد.

نحوه نگارش حلقه تو در تو

نحوه نگارش حلقه تو در تو for در C++ به شکل زیر است:

for ( init; condition; increment ) {
   for ( init; condition; increment ) {
      statement(s);
   }
   statement(s); // you can put more statements.
}

نحوه نگارش حلقه تو در تو  while در C++ به شکل زیر است:

do {
   statement(s); // you can put more statements.
   do {
      statement(s);
   } while( condition );

} while( condition );

مثال
نمونه کد زیر از حلقه تو در تو for برای پیدا کردن اعداد اول بین 2 تا 100 استفاده می کند:

#include <iostream>
using namespace std;
 
int main () {
   int i, j;
   
   for(i = 2; i<100; i++) {
      for(j = 2; j <= (i/j); j++)
         if(!(i%j)) break; // if factor found, not prime
         if(j > (i/j)) cout << i << " is prime\n";
   }
   
   return 0;
}


نتیجه کد بالا به شکل زیر است:

2 is prime
3 is prime
5 is prime
7 is prime
11 is prime
13 is prime
17 is prime
19 is prime
23 is prime
29 is prime
31 is prime
37 is prime
41 is prime
43 is prime
47 is prime
53 is prime
59 is prime
61 is prime
67 is prime
71 is prime
73 is prime
79 is prime
83 is prime
89 is prime
97 is prime

دستورات کنترل حلقه

دستورات کنترل حلقه مراحل اجرا را از حالت نرمال آن تغییر می دهد. وقتی اجرای یک حلقه به پایان می رسد، تمام اشیا و متغیرهایی که در آن محدوده ساخته شده بودند به طور خودکار از بین می روند.
دستورات کنترلی زیر در C++  پشتیبانی می شود:

ردیف

دستور کنترلی و توضیح آن

1

دستور break

دستور حلقه و یا switch را متوقف می کند و بلافاصله دستور بعد از آن را اجرا می کند.

2

دستور continue

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

3

دستور goto

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

حلقه بی نهایت

اگر یک شرط هیچگاه نادرست (false) نشود، حلقه بی نهایت می شود. از آنجایی که هیچ کدام از سه عبارتی که برای حلقه for وجود دارد ضروری نیست، می‌توانید یک حلقه بی نهایت را با خالی گذاشتن عبارت شرطی ایجاد کنید.
 

#include <iostream>
using namespace std;
 
int main () {
   for( ; ; ) {
      printf("This loop will run forever.\n");
   }

   return 0;
}

وقتی عبارات شرطی وجود نداشته باشند، تصور می شود که شرط درست است. برنامه نویسان C++  از دستور'for (;;)' برای ایجاد یک حلقه بی نهایت استفاده می کنند.
نکته:  با استفاده از کلید ترکیبی Ctrl+ C  می توانید حلقه بی نهایت را  به پایان برسانید.

برای درج نظر و یا طرح سوالات خود لطفا در سایت ثبت نام کنید و یا وارد سایت شوید

نظرات کاربران

برای این مطلب تاکنون نظری ارسال نشده است. شما اولین نفر باشید