یکی دیگه از مهم ترین مباحث در زبان سی پلاس پلاس حلقه های تکرار برشمرده میشه .درک دقیق و استفاده از حلقه های تگرار منجر به درک منطق و مفهوم برنامه نویسی میشه .مهم ترین نکته و توانمندی شما در استفاده از حلقه های تکرار تسلط بر رابطه تکرار دستورات و استفاده بجا انهاست.
اما اول با تعریف حلقه در برنامه نویسی اشنا بشیم و سپس به ساختار و مفاهیم ان میپردازیم.
برای جلوگیری از تکرار نوشتن دستورات از حلقه ها استفاده میشه. بجای تکرار دستورات از حلقه تکرار استفاده و تمام دستورات داخل حلقه قرار میدیم تا هرسری اجرا بشه و دیگه نیازی به تکرار و نوشتن محدد دستورات نباشه.در زبان سی پلاس پلاس تکرارا به دوصورت تکراربراساس تعداد که از حلقه for و تکرار براساس شرط از حلقه while ,do/while استفاده میشه.
دستورتکرار while
این دستور تا زمانیکه یه شرطی درسته عملی را به طور مکرر انجام میده
while (condition) {
بلوک کد
}
به مثال زیر دقت کنید :
تا وقتیکه i کمتر از 8 باشه کد موجود در حلقه مکررا انجام میشه. دقت کنید خط چهارم کد متغیر رو افزایش میده که اگر خط چهار کد رو درنظر نگیرید حلقه هیچ موقع پایان نمی باید.
int i = 0;
while (i < 5) {
cout << i << “\n”;
i++;
}
دستور تکرار do/while
این دستور شبیه دستور while می باشد. دستور while چی بوددر این دستور قبل از اجرای بدنه حلقه شرط ادامه حلقه در ابتدای حلقه ازمایش میشه حالا در دستور do/while شرط ادامه ی حلقه بعد از اجرای بدنه ی حلقه ازمایش میشه پس با این تفاسیر حداقل یک بار بدنه ی حلقه اجرا میشه.
بدنه ی دستور do/while به دو صورت زیر هست
do{
Statement
}
While(condition);
اگر گر بدنه ی دستور do/while تنها شامل یک دستور بود از ساختارزیر نیز میتونید استفاده کنید .
do
Statement
While(condition);
مثال:
int a = 0;
do {
cout << a << “\n”;
a++;
}
while (a < 7);
خروجی برنامه بالا به صورت زیر هست
*خط چهار:.به افزایش متغیر دقت کنید در غیر اینصورت اگر درنظر نگیرید حلقه پایان باز میشه و پایانش مشخص نیست
0
1
2
3
4
5
6
7
و مثالی دیگر
// echo machine
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str;
do {
cout << “Enter text: “;
getline (cin,str);
cout << “You entered: ” << str << ‘\n’;
} while (str != “goodbye”);
}
خروجی برنامه
Enter text: hello
You entered: hello
Enter text: who’s there?
You entered: who’s there?
Enter text: goodbye
You entered: goodbye
حلقه for
یکی دیگه از ساختارهای کنترل تکرار حلقه for هست. یک ساختار کنترل تکرار است که به شما امکان می دهد یک حلقه را که باید تعداد مشخصی از زمان اجرا شود ، بنویسید.
for (statement 1; statement 2; statement 3) {
بلوک کد اجرایی //
}
ساخنتار تابع for همونطور که مشاهده میکنید یکم متفاوت تر از بقیه حلقه هاست.
بخش statement1 قبل از اجرای بلوک کد یکبار اجرا میشه که شما توی این بخش میتونید متغیر های کنترلی خودتون رو معرفی کنید دستور یا دستورات مقدار دهی اولیه در این قسمت قراردارد.شما میتونید یک مقدار یا چند مقدار به متغیر اختصاص بدید و اگر بخواهید چندتا مقدار به متغیر بدیم مابین دستورات از کاما استفاده میکنیم و اگر هم نخواهیم مقداری بدیم میتونیم خالی بزاریم .همچنین محدودیتی برای نوع متغیر وجودنداره میتونه از نوع intو یا float فراخوانی کنید.
چند نمونه از بخش اول تابع for
for(a=0;
for(a=b=c=1;
for( ;
for(int a=5;
: statement2 شرط اجرای بلوک کد را مشخص میکنه و شرط ما در ین قسمت قرار میگییره. این قسمت تا زمانیکه شرط درست باشه اجرایی میشه .شرط میتونه ساده و یا مرکب باشه و الزاما نباید در رابطه با نباید در رابطه با متغیر و متغیرهای قسمت اول باشه
چندی نمونه از قسمت دوم حلقه for
for(a=0;a<=10;
for( ; ;
for(e=f=g=1; a,b && c==1;
for(m=10,n=2.5;x<y || a>b;
اگر قسمت اول و سوم حلقه forخالی باشه و فقط قسمت دوم که مروبط به بررسی شرط تکرار حلقه است انگاه همانند حلقه whlile میشه و تفاوتی باه ندارن.درنتیجه با دونستن این موضوع به این نتیجه میرسیم که حلقه forهم میتونه کار حلقه whileانجام بده هم دستورات دیگه اجرایی کنه.
statement3 , بخش سوم هربار بعد از اجرای بلوک کد اجرایی . هربار در اجرای حلقه بخواهیم به متغیر مقداری اضافه یا کم بشه از دستور یا دستورات اضافه کننده یا کاهنده و یا دستورات دیگر بکار ببریم.
چندی نمونه ازقسمت سوم حلقه :
for(a=0;a<=10;a++)
for( ; ; )
for( m=10,n=2.5;x<y || a>b;m+=0.5,n-=0.2,a*=2)
به مثال زیر توجه کنید:
for (int i = 0; i <= 10; i = i + 2) {
cout << i << “\n”;
}
خروجی برنامه بالا به صورت زیر هست
0
2
4
6
8
10
*اگر به جای یک دستور بخواهیم چندین دستور استفاده کنیم اونهارو بین دو آکولاد قرار میدیم.
// countdown using a for loop
#include <iostream>
using namespace std;
int main ()
{
for (int n=10; n>0; n–) {
cout << n << “, “;
}
cout << “liftoff!\n”;
}
خروجی برنامه :
10, 9, 8, 7, 6, 5, 4, 3, 2, 1, liftoff!
تمرین:
برنامه ای بنویسید که با استفاده از حلقه for پیغام good evening رو پنج بار در خروجی به نمایش بزاره.
متخصصین جوان پاورایی با هدف سهولت در فرایند یادگیری ، مهارت افزایی شما عزیزان با بازار کار مربوطه در تمامی مراحل همراه ،پشتیبان و خدمت رسان شما عزیزان هستند.