44
ور ت س دif و ح ن ود. ش را ج ا ي ط ر شل ک ش ه به م ا رن ب ود ش ي م ب ج و م: ب س ر ا ب ر* ه ب و گ ه ب- ا/ نIf (condition) statement; Condition ه ک رط ش ارت ب ع6 ك ي ود ش ي م ده ب م ا ن ح ي ح ص) ود ش ي ما/ ورد ر ب ح ي ح ص دار ق م6 ك ي ا ی که ن ت ار ب ع( ب س اstatement د. ش ا را ن ج ا ل ي ا ق- رمان ف ر هcondition د. ش ا ن ه ت س ر دا ف ص ر ي غ دار ق م ر يR ب راS ب- ط درون ر ش ور ت س دif

دستور if موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

  • Upload
    garnet

  • View
    69

  • Download
    2

Embed Size (px)

DESCRIPTION

دستور if. دستور if موجب مي‌شود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ‌ زير است‌: If ( condition ) statement ; Condition که شرط نامیده می‌شود يك عبارت صحيح است (عبارتی که با یک مقدار صحیح برآورد می‌شود) statement ‌ هر فرمان قابل اجرا باشد. condition‌ مقدار غير صفر داشته باشد. - PowerPoint PPT Presentation

Citation preview

Page 1: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

م�وجب مي ش�ود برنام�ه ب�ه ش�کل ifدس�تور ش�رطي اج�را ش�ود. نح�و آن ب�ه گون�ۀ�

زير است :

If (condition) statement; Condition نامی�ده می ش�ود ش�رط ک�ه

ص�حيح اس�ت )عب�ارتی ک�ه ب�ا ی�ک ي�ك عب�ارت مقدار صحیح برآورد می شود(

statement .هر فرمان قابل اجرا باشد condition .مقدار غير صفر داشته باشد

شرط درون پرانتز

) (

ifدستور

Page 2: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

if..else - دستور2

م��وجب مي ش��ود if..elseدس��تور بس��ته ب��ه این ک��ه ش��رط درس��ت باش�����د ی�����ا خ�����یر، يكي از دو دس��تورالعمل ف��رعي اج��را گ��ردد. نح��و اين دس��تور ب��ه ش��کل زي��ر

است:if (condition) statement1;else statement2;

condition هم���ان ش���رط مس���اله اس���ت ک���ه ي���ك عب���ارت ص���حيح

و statement1می باش��������������د و statement2 فرمان ه�اي قاب�ل اج�را

هس��تند. اگ��ر مق��دار ش��رط، غ��ير اج���را statement1ص���فر باش���د،

اج�را statement2خواه�د ش�د وگرن�ه مي شود.

Page 3: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

int main()

{ int n, d;

cout << " Enter two positive integers: ";

cin >> n >> d;

if (n%d) cout << n << " is not divisible by " << d << endl;

else cout << n << " is divisible by " << d << endl;

}

یک آزمون قابليت مثال تقسيم

Page 4: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

را 33مق�دار ;x = 33مثال دس�تور دستور xدر ولی می دهد قرار x

بررس��ی می کن��د ک��ه آی��ا ;33 == براب�ر اس�ت ی�ا خ�یر. 33 ب�ا xمق�دار

درک این تف���اوت اهمیت زی���ادی دارد.

عملگ��ر C++دقت کنی��د ك��ه در ف�رق براب�ری ب�ا عملگ�ر ج�ایگزینی

دارد. عملگ���ر ج���ایگزینی ی���ک " اس��ت ولی =مس��اوی تکی "

= عملگ�ر براب�ری، دو مس�اوی " " است. =

Page 5: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

- بلوك هاي دستورالعمل4

ای از زنج�يره بل�وك دس�تورالعمليك دستورالعمل هاس����ت ك����ه درون

محصور شده، مانند :}{براكت {

int temp=x; x = y;

y = temp;}

ی�����ک بل�����وک Cدر برنامه ه�����اي ++دس��تورالعمل مانن��د ی��ک دس��تورالعمل

تکی است.

Page 6: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

int main)( {

int x, y; cout << "Enter two integers;" :

cin >> x >> y; if (x > y) {

int temp = x; x = y;

y = temp; } //swap x and y cout << x << " <= " << y << endl;}

ي��ك بل��وك دس��تورالعمل :مث��ال ifدرون يك دستور

اين برنام�ه دو ع�دد ص�حيح را گرفت�ه و ب��ه ت��رتيب بزرگ ت��ري، آن ه��ا را

چاپ مي كند:

Page 7: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

int main()

{ int n=44; cout << "n = " << n << endl;

{ int n; cout << "Enter an integer: "; cin >> n;

cout << "n = " << n << endl; } { cout << " n = " << n << endl; } { int n;

cout << "n = " << n << endl; } cout << "n = " << n << endl; }

Page 8: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

int main(){ int n=44; cout << "n = " << n << endl; { int n; cout << "Enter an integer: "; cin >> n; cout << "n = " << n << endl; } { cout << " n = " << n << endl; } { int n; cout << "n = " << n << endl; } cout << "n = " << n << endl; }

Page 9: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

– شرط هاي مركب5 مي توانن�د x>=y و n%d هايي مانن�د شرط

ب�ه ص�ورت ي�ك ش�رط م�ركب ب�ا هم ت�ركيب ش�وند. اين ك�ار ب�ا اس�تفاده ازعملگره�اي

)||و ( and )&&منطقي or) و !( not) ص�ورت مي پ�ذیرد. اين عملگره�ا ب�ه ش�کل

زير تعريف مي شوند:p && q درس�ت اس�ت اگ�ر و تنه�ا اگ�ر همp و همq

هر دو درست باشند

p || q نادرس�ت اس�ت اگ�ر و تنه�ا اگ�ر همp و هم q هر دو نادرست باشند

!p درس�ت اس�ت اگ�ر و تنه�ا اگ�رpنادرس�ت باش�د نادرس��ت (n%d || x>=y)براي مث��ال

براب�ر ص�فر n%dاس�ت اگ�ر و تنه�ا اگ�ر باشد.y كوچك تر از xو

Page 10: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

( or)|| ( و and )&&سه عملگ�����ر منطقي

ج��داول معم��وال ب��ا اس��تفاده از (not )!و به گونۀ� زير بيان مي شوند:درستي

P&&q q p

T T TF F TF T FF F F

P||q q p

T T TT F TT T FF F F

!P PF TT F

درس�ت pطب�ق ج�دول های ف�وق اگ�ر p&&q نادرس��ت باش��د، عب�ارت qو

درس���ت p||qنادرس���ت و عب���ارت است.

Page 11: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

ارزيابي ميانبري

هاي م�ركب ك�ه از && و || شرطاس�تفاده مي كنن�د عملون�د دوم را بررس��ی نمي كنن��د مگ��ر اين ك��ه

الزم باشد.

Page 12: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

عبارات منطقی

ش�رطي اس�ت ك�ه عب�ارت منطقييك ي�ا درس�ت اس�ت ي�ا نادرس�ت. قبال دي�ديم ک��ه عب��ارات منطقي ب��ا مق��ادير ص��حيح ارزي�ابي مي ش�وند. مق�دار ص�فر ب�ه معن�اي نادرس�ت و ه�ر مق�دار غ�ير ص�فر ب�ه معن�اي درس���ت اس���ت. ب���ه عب���ارات منطقی

هم می گویند. »عبارات بولی«

Page 13: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

چون هم�ۀ� مق�ادير ص�حيح ناص�فر ب���ه معن���ای درس���ت تفس���یر مي ش����وند، عب����ارات منطقي اغلب تغي���ير قياف���ه مي دهن���د.

برای مثال دستور

if (n) cout << "n is not zero";

غ�ير ص�فر اس�ت عب�ارت nوق�تي n is not zero را چ�اپ مي كن�د زي�را

وق���تی (n)عب���ارت منطقي غ��یر ص��فر اس��ت ب��ه nمق��دار

عنوان درست تفسير مي گردد.

Page 14: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

کد زیر را نگاه کنید:if (n%d) cout << "n is not a multiple of d;"

دس��تور خ��روجي فق��ط وق��تي ناص��فر اس��ت اج��را n%dك��ه

وق�تی ناص�فر n%dمي گ�ردد و بخش پ��ذير dب��ر nاس��ت ک��ه

نباش���د. گ���اهی ممکن اس���ت فرام��وش ک��نیم ک��ه عب��ارات منطقی مق�ادیر ص�حیح دارن�د و این فراموش���ی ب���اعث ایج���اد نت�ایج غ�یر منتظ�ره و نامتع�ارف

شود.

Page 15: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

دس��تورهاي انتخ��اب مي توانن��د مانن��د هاي م�ركب ب�ه ك�ار رون�د. دس�تورالعمل

ب�ه این ص�ورت ک�ه ي�ك دس�تور انتخ�اب مي توان�د درون دس�تور انتخ�اب ديگ�ر اس����تفاده ش����ود. ب����ه اين روش،

مي گويند.جمالت تودرتو

دستور هاي انتخاب تودرتو

Page 16: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

دستور هاي انتخاب تودرتو3-12مثال را دارد:3-10اين برنامه همان اثر مثال

int main(){ int n, d; cout << "Enter two positive integers: "; cin >> n >> d; if (d != 0) if (n%d = = 0) cout << d << " divides " << n << endl; else cout << d << " does not divide " << n << endl; else cout << d << " does not divide " << n << endl;}

دوم درون if..elseدر برنام�ۀR ب�اال، دس�تور اول قرار گرفته است .if..elseدستور

Page 17: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

دستور هاي انتخاب تودرتو3-12مثال را دارد:3-10اين برنامه همان اثر مثال

int main(){ int n, d; cout << "Enter two positive integers: "; cin >> n >> d; if (d != 0) { if (n%d = = 0) cout << d << " divides " << n << endl; else cout << d << " does not divide " << n << endl; } else cout << d << " does not divide " << n << endl;}

اول قرار گرفته است .if..else دوم درون دستور if..elseدر برنامۀR باال، دستور

Page 18: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

else if- ساختار 9

تودرت��و، اغلب if..elseدس��تور ب���راي بررس���ي مجم���وعه ای از حالت ه�اي متن�اوب ی�ا م�وازي ب�ه ك�ار مي رود. در این ح�االت فق�ط

if ش����امل دس�تور elseعب����ارت بع�دی خواه�د ب�ود. این قبی�ل ک�دها

ساختار با معموال elseرا if.مي سازند

Page 19: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

براي مشخص کردن محدودۀ� else ifاستفاده از ساختار نمره

برنامۀ� زیر يك نمرۀ� امتحان را به درجۀ� حرفي معادل تبديل مي كند:

int main()

{ int score;

cout << "Enter your test score: "; cin >> score;

if (score > 100) cout << "Error: that score is out of range.";

else if (score >= 90) cout << "Your grade is an A." << endl;

else if (score >= 80) cout << "Your grade is a B." << endl;

else if (score >= 70) cout << "Your grade is a C." << endl;

else if (score >= 60) cout << "Your grade is a D." << endl;

else if (score >= 0) cout << "Your grade is an F." << endl;

else cout << "Error: that score is out of range.";

}

Page 20: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

براي مشخص کردن محدودۀ� else ifاستفاده از ساختار نمره

برنامۀ� زیر يك نمرۀ� امتحان را به درجۀ� حرفي معادل تبديل مي كند:

int main()

{ int score;

cout << "Enter your test score: "; cin >> score;

if (score > 100) cout << "Error: that score is out of range.";

else if (score >= 90) cout << "Your grade is an A." << endl;

else if (score >= 80) cout << "Your grade is a B." << endl;

else if (score >= 70) cout << "Your grade is a C." << endl;

else if (score >= 60) cout << “grade is a D." << endl;

else if (score >= 0) cout << "grade an F." << endl;

else cout << "Error: that score is out of

range.";

}

Page 21: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

switch- دستورالعمل 10 مي توان��د ب��ه ج��اي switchدس��تور

ب���راي بررس���ي else ifس���اختار مجم�وعه اي از حالت ه�ای متن�اوب و م��وازي ب��ه ك��ار رود. نح��و دس��تور

switch:به شکل زير است switch (expression){ case constant1: statementlist1; case constant2: statementlist2; case constant3: statementlist3; : : case constantN: statementlistN; default: statementlist0;}

Page 22: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

را expressionاين دس�تور ابت�دا ب��رآورد مي كن��د و س��پس مي��ان

ب�ه دنب�ال مق�دار آن caseثابت ه�اي مي گ�ردد. اگ�ر مق�دار مربوط�ه از مي���ان ثابت ه���اي فهرست ش���ده

statementlistی��افت ش��د، دس�تور اج��را مي ش��ود. caseمقاب��ل آن

اگ���ر مق���دار م���ورد نظ���ر می���ان case ه���ا ی���افت نش���د و عب���ارت

default وج���ود داش���ت، دس���تور statementlist مقاب����ل آن اج����را

مي شود.

ی���ک عب���ارت defaultعب���ارتاختی�اری اس�ت. یع�نی می ت�وانیم

آن را قی����د switchدر دس����تور باي�د ب�ه ش�کل expressionنک�نیم.

ي�ك ن�وع ص�حيح ارزي�ابي ش�ود و constant ه����ا باي����د ثابت ه����اي

صحيح باشند.

Page 23: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

یکی از عملگ���ر عب���ارت ش���رطیامکان����اتی اس����ت ک����ه جهت اختص��ار در کدنویس��ی ت��دارک دی�ده ش�ده اس�ت. این عملگ�ر را می ت��وانیم ب��ه ج��ای دس��تور

if..else ب���ه ک���ار ب���بریم. اين ب�ه : و ?عملگ�ر از نش�انه های

شکل زير استفاده مي كند:condition ? expression1 : expression2;

- عملگر عبارت شرطي11 conditionدر این عملگ��ر ابت��دا ش�رط

بررس���ی می ش���ود. اگ���ر این ش���رط درس�ت ب�ود، حاص�ل ک�ل عب�ارت براب�ر ب�ا

expression1 می ش��ود و اگ��ر ش��رط نادرس�ت ب�ود، حاص�ل ک�ل عب�ارت براب�ر

می شود. expression2با

Page 24: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

مثال در دستور انتساب زير:min = ( x<y ? x : y );

را درون x باش�د مق�دار x<yاگ�ر min ق�����رار می ده�����د و اگ�ر x<y

ق�رار min را درون yنباش�د مق�دار می ده�د. یع�نی ب�ه همین س�ادگی و

Rاختص�ار، مق�دار کمین�ۀx و y درون قرار می گیرد.minمتغیر

Page 25: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

while- دستور 1 به شکل زير است:while نحو دستور

while (condition) statement;

، ي�ك ش�رط ق�رار می گ�یرد و conditionبه ج�اي دس��توری ک��ه بای��د تک��رار statementب��ه ج��اي

ش���ود ق���رار مي گ���يرد. اگ���ر مق���دار ش���رط، نادي�ده statementص�فر)یع�ني نادرس�ت( باش�د،

گرفت�ه مي ش�ود و برنام�ه ب�ه اولین دس�تور بع�د پ��رش مي كن��د. اگ��ر مق��دار ش��رط whileاز

اج�را statementناص�فر)یع�ني درس�ت( باش�د، ش�ده و دوب�اره مق�دار ش�رط بررس�ی می ش�ود. این تک��رار آن ق��در ادام��ه می یاب��د ت��ا این ک��ه

مقدار شرط صفر شود.

Page 26: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

محاس�بۀ� حاص�ل جم�ع اع�داد ص�حيح مت�والي 4-1مث�ال whileبا حلقۀ�

را ب�رای ع�دد n + … + 3 + 2 + 1اين برنام�ه مق�دار محاسبه مي كند:nورودي

int main(){ int n, i=1; cout << "Enter a positive integer: "; cin >> n; long sum=0; while (i <= n) sum += i++; cout << "The sum of the first " << n << " integers is " << sum;}

Page 27: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

int main(){ int n, i=1; cout << "Enter a positive integer: "; cin >> n; long sum=0; while (true) { if (i > n) break; sum += i++; } cout << "The sum of the first " << n << " integers is " << sum;

}

- خاتمه دادن به يك حلقه2 ب�راي breakقبال دي�ديم ك�ه چگون�ه دس�تور

اس���تفاده switchكن���ترل دس���تورالعمل نگ�اه كني�د(. از 4-17مي ش�ود )ب�ه مث�ال

ب���راي پای���ان دادن ب���ه breakدس���تور حلقه ها نیز مي توان استفاده کرد.

يكی از مزيت ه����ای دس����تور break اين اس���ت ك���ه ف���ورا

حلق�ه را خاتم�ه می ده�د ب�دون این ک���ه م���ابقی دس���تورهای

درون حلقه اجرا شوند.

Page 28: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

int main(){ long bound; cout << "Enter a positive integer: "; cin >> bound; cout << "Fibonacci numbers < " << bound << ":\n0, 1"; long f0=0, f1=1; while (true) { long f2 = f0 + f1; if (f2 > bound) exit(0); cout << ", " << f2; f0 = f1; f1 = f2; }}

برنامه نویس���ان ت���رجیح ب��رای breakمی دهن��د از

خاتم�ه دادن ب�ه حلقه ه�ای نامتن��اهی اس��تفاده کنن��د زی���را ق���ابلیت انعط���اف

بیشتری دارد.

)exit)0 استفاده از تابع 4-5مثال

روش ديگري براي خاتمه دادن به يك حلقه است. هرچند )exit)0تابع که این تابع بالفاصله اجرای کل برنامه را پایان مي دهد:

Page 29: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

:متوقف کردن يك حلقۀR نامتناهي

سیس��تم Ctrl+Cب��ا فش��ردن کلی��دهای عام��ل ی��ک برنام��ه را ب��ه اجب��ار خاتم��ه

را پ�ايين نگ�ه داش�ته و Ctrlمی ده�د. كلي�د روي ص��فحه كليد خ��ود را فش��ار Cكلي��د

دهيد تا برنامۀR فعلی خاتمه پیدا کند.

Page 30: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

do..while- دستور 3 روش دیگ���ری ب���رای س���اختن do..whileساختار

:حلقه است. نحو آن به صورت زیر است

do statement while (condition);

ي���ك ش���رط ق���رار conditionبه ج���اي دس�تور ی�ا statementمی گ�یرد و ب�ه ج�اي

بل�وکی ق�رار می گ�یرد ک�ه ق�رار اس�ت تک�رار شود.

را اج��را statementاین دس��تور ابت��دا را conditionمي كن��د و س��پس ش��رط

بررس�ی مي كن�د. اگ�ر ش�رط درس�ت ب�ود حلق��ه دوب��اره تک��رار می ش��ود وگرن��ه

حلقه پایان می یابد.

Page 31: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

مانن���د دس���تور do..whileدس���تور while اس�ت. ب�ا اين ف�رق ك�ه ش�رط

کن��ترل حلق��ه ب��ه ج��ای این ک��ه در ابت���دای حلق���ه ارزي���ابي گ���ردد، در

انتهای حلقه ارزيابي مي شود.

ه�ر متغ�ير كن�ترلي ب�ه ج�اي اين یع�نیك�ه قب�ل از ش�روع حلق�ه تنظیم ش�ود،

.مي تواند درون آن تنظیم گردد

Rدیگ�ر این اس�ت ك�ه حلق�ۀ Rنتیج�ۀdo..while هميش�ه ب�دون توج�ه ب�ه

مق�دار ش�رط كن�ترل، الاق�ل ي�ك ب�ار Rاج��را مي ش��ود ام��ا حلق�ۀwhile می تواند اصال اجرا نشود.

Page 32: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

محاس��بۀ� حاص��ل جم��ع اع��داد ص��حيح 4-7مث��ال do..while متوالي با حلقۀ�

را دارد:5-1اين برنامه همان تأثير مثال int main(){ int n, i=0; cout << "Enter a positive integer: "; cin >> n; long sum=0; do sum += i++; while (i <= n); cout << "The sum of the first " << n << " integers is " << sum;

}

Page 33: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

اعداد فاكتوريال4-8* مثال ب����ا ! و …3! و 2! و 1! و 0اع����داد فاكتوري����ال

بازگش���تي زي���ر تعري���ف اس���تفاده از رابطه ه���ايمي شوند:

0! = 1 , n! = n(n-1)! در معادلۀ� دوم داريم:n = 1براي مثال، به ازاي

1! = 1((1-1)!) = 1(0!) = 1(1) = 1 داريم:n = 2همچنین براي

2! = 2((2-1)!) = 2(1!) = 2(1) = 2 داريم:n = 3و به ازاي

3! = 3((3-1)!) = 3(2!) = 3(2) = 6

Page 34: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

برنامۀ� زیر همۀ� اعداد فاكتوريال را که از عدد داده کند:شده کوچک ترند، چاپ می

int main)( {long bound;

cout << "Enter a positive integer;" : cin >> bound;

cout << "Factorial numbers < " << bound << ":\n1;" long f=1, i=1;

do { cout << ", " << f;

f *= ++i;}

while (f < bound);}

Page 35: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

ب�ه ص�ورت زي�ر forنح�و دس�تورالعمل است:

for (initialization; condition; update) statement;

سه قس�مت داخ�ل پران�تز، حلق�ه را کنترل می کنند.

for- دستور 4

ب��رای اعالن ی��ا initializationعب��ارت مق�داردهی اولی�ه ب�ه متغ�یر کن�ترل حلق�ه اس��تفاده می ش��ود.این عب��ارت اولین عب��ارتی اس��ت ک��ه ارزی��ابی می ش��ود پیش از این ک���ه ن���وبت ب���ه تکراره���ا

برسد.

ب�رای تع�یین این ک�ه آی�ا conditionعب�ارت حلق��ه بای��د تک��رار ش��ود ی��ا خ��یر ب��ه ک��ار می رود. یع�نی این عب�ارت، ش�رط کن�ترل حلق�ه اس�ت. اگ�ر این ش�رط درس�ت باش�د

اجرا می شود.statementدستور

ب��رای پیش ب��ردن متغ��یر updateعب��ارت کن�ترل حلق�ه ب�ه ک�ار می رود. این عب�ارت

ارزی�����ابی statementپس از اج�����رای می گردد.

Page 36: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

بن�ابراین زنج�یرۀ� وق�ایعی ک�ه تک�رار را ایجاد می کنند عبارتند از:

initialization ارزیابی عبارت –1 . اگ�ر condition بررس�ی ش�رط –2

باش��د، حلق��ه خاتم��ه نادرس��ت می یابد.

statement اجرای –3update ارزیابی عبارت –44 تا 2 تکرار گام های –5

و initializationعبارت ه���������ای condition وupdate عبارت ه�ای

اختی�����اری هس�����تند. یع�����نی می ت�وانیم آن ه�ا را در حلق�ه ذک�ر

نکنیم.

Page 37: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

ب��راي محاس��بۀ� for اس��تفاده از حلق��ۀ� 4-9 مث��ال مجموع اعداد صحيح متوالی را دارد:5-1اين برنامه همان تأثير مثال

int main(){ int n; cout << "Enter a positive integer: "; cin >> n; long sum=0; for (int i=1; i <= n; i++) sum += I; cout << "The sum of the first " << n << " integers is " << sum;

}

++ اس�تاندارد وق�تي ي�ك متغ�یر كن�ترل درون Cدر در مث�ال ب�اال( i اعالن مي ش�ود )مانن�د forي�ك حلق�ۀ�

مح�دود مي گ�ردد. forح�وزۀ� آن متغ�یر ب�ه هم�ان حلق�ۀ� يع���ني آن متغ���ير نمي توان���د ب���يرون از آن حلق���ه

استفاده شود.

نتیج�ۀ� دیگ�ر این اس�ت ک�ه مي ت�وان از ن�ام مش�ابهي ب�راي ي�ك متغ�ير ديگ�ر اس�تفاده forدر خ�ارج از حلق�ۀ�

نمود.

Page 38: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

نزوليfor يك حلقۀ� 4-12مثال برنام��ۀ� زی��ر ده ع��دد ص��حيح مثبت را ب��ه ت��رتيب

نزولی چاپ مي كند:

int main(){ for (int i=10; i > 0; i--) cout << " " << i;}

Page 39: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

بيش�تر از ي�ك متغ�ير كن�ترل 4-15مث�ال forدر حلقۀ�

در برنام�ۀ� زی�ر دو متغ�ير forحلق�ۀ� كنترل دارد:

int main()

{ for (int m=95, n=11; m%n > 0; m -= 3, n++) cout << m << "%" << n << " = " << m%n << endl;

}

Page 40: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

تودرتوfor حلقه هاي 4-16مثال برنامۀ� زیر يك جدول ضرب چاپ مي كند:

#include <iomanip> #include <iostream> int main(){ for (int x=1; x <= 10; x++) { for (int y=1; y <= 10; y++) cout << setw(4) << x*y; cout << endl; }}

Page 41: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

ی�ک دس�تور آشناس�ت. قبال breakدس�تور از آن ب���رای خاتم���ه دادن ب���ه دس���تور

switch و همچ����نین حلقه ه����ای while و do..while اس����تفاده ک����رده ایم. از این

Rدس�تور ب�رای خاتم�ه دادن ب�ه حلق�ۀfor ن�یز می توانیم استفاده کنیم.

در ه���ر ج���ایی درون breakدس���تور حلق�ه می توان�د ج�ا بگ�یرد و در هم�ان ج�ا

حلقه را خاتمه دهد.

break- دستور 5 درون breakوق��تي دس��تور

حلقه ه��ای تودرت��و اس��تفاده ش�ود، فق�ط روی حلقه ای ک�ه مس����تقیما درون آن ق����رار

گرفته تاثیر می گذارد. حلقه ه�ای ب�یرونی ب�دون هیچ

تغییری ادامه می یابند.

Page 42: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

continue- دستور 6

بقي�ۀR دس�تورهاي درون breakدس�تور بل��وك حلق��ه را نادی��ده گرفت��ه و ب��ه اولین دس���تور ب���يرون حلق���ه پ���رش

ن�یز ش�بیه continueمي كن�د. دس�تور همين اس�ت ام�ا ب�ه ج�اي این ک�ه حلق�ه

تك�رار بع�دي را خاتم�ه ده�د، اج�را را ب�ه منتقل مي كند.حلقه

Rاین دستور، ادامۀچرخۀR فعلی را لغو کرده و اجرای دور بعدی حلقه را آغاز

کند.مي

Page 43: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

continue و break استفاده از دستورهاي 4-19 مثال را ش�رح continue و breakاين برنام�ۀ� كوچ�ك، دس�تورهاي

مي دهد:

int main(){ int n = 1; char c; for( ; ;n++ ) { cout << "\nLoop no: " << n << endl; cout << "Continue? <y|n> "; cin >> c; if (c = = 'y') continue; break; } cout << "\nTotal of loops: " << n;}

Page 44: دستور  if  موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:

استفاده ممنوع

gotoدستور