270 likes | 399 Views
Intro to C++ Language . Control Structures. Control Structures. همیشه برنامه بصورت ترتیبی اجرا می شود مگر اینکه اتفاق خاصی رخ دهد. در این حالت ما از ساختارهای انتخاب استفاده می کنیم. ساختارهای انتخاب دو نوع عملکرد مفید را در اختیار ما قرار می دهند:
E N D
Intro to C++ Language Control Structures
Control Structures • همیشه برنامه بصورت ترتیبی اجرا می شود مگر اینکه اتفاق خاصی رخ دهد. • در این حالت ما از ساختارهای انتخاب استفاده می کنیم. • ساختارهای انتخاب دو نوع عملکرد مفید را در اختیار ما قرار می دهند: • انتخاب بین گزینه های مختلف بر حسب شرایط موجود • تکرار یا حلقه
Selection • یک ساختار کنترلی انتخاب، برای انتخاب بین گزینه های متفاوت استفاده می گردد. • باید یک شرط وجود داشته داشته باشد که بر اساس آن گزینه مورد نظر انتخاب شود. • ساختارهای کنترلی انتخاب در C++ : if if/else switch
Repetition Control Structures • ساختارهای کنترلی تکرار به ما امکان می دهند که قسمتی از برنامه را به تعداد دلخواه اجرا کنیم. • C++ دارای ساختارهای تکرار زیر است: while for do/while
دستورهاي قبلي شرط؟ true عمل false دستور بعدي if • ساختار کنترلی if اجازه می دهد که در صورت درست بودن شرط، یک عمل (مجموعه ای از دستور العملها) انجام گردد if (condition) action;
Conditions • در ساختارهای انتخاب، شرط یک مقدار Boolean دارد که درست یا غلط است • در C++: • مقدار 0 برابر غلط است • هر مقدار دیگری برابر درست است
if examples if (1) cout << "I am true!\n"; if (1-1) cout << "I am false!\n";
Relational and Equality Operators and Conditions • در C++ از عملگرهای مقایسه ای و تساوی برای ساخت شرط استفاده می گردد. • نتیجه این عملگرها 0 (غلط) یا 1 (درست) است • مثلا، عبارتx==xدارای مقدار صحیح است • اما مقدار 7 <= 3غلط است.
More ifs if (foo) cout << "foo is not zero\n"; if (grade>=90) lettergrade = 'A'; if (lettergrade == 'F') cout << "The system has failed you\n"
Common Mistake • اغلب عملگر انتساب (=) با عملگر تساوی (==) اشتباه گرفته می شود. • در عبارت زیر چه ایرادی وجود دارد: if (grade=100) cout << "your grade is perfect - RPI has decided to give you your degree today!\n";
Compound Statements • داخل هر if، می توان یک عبارت ساده یا یک عبارت مرکب قرار داد. • هر عبارت مرکب با } شروع و با { خاتمه می یابد. داخل این علایم می توان چندین عبارت را استفاده نمود. if (grade>=90) { cout << "Nice job - you get an A\n"; acnt = acnt+1; }
A word about style • C++ کاری به فضاهای خالی داخل کد برنامه ندارد لذا می توان کد برنامه را به صورتهای متفاوتی نوشت. • چندین استیل معروف وجود دارد که مورد استفاده اغلب برنامه نویسان هستند. • هدف اصلی این استیلها افزایش خوانایی برنامه است.
Some common styles if (foo>10) { x=y+100; cout << x; } if (foo>10) { x=y+100; cout << x; } if(foo>10){x=y+100;cout<<x;}
if else Control Structure • ساختار کنترلیif else اجازه می دهد که در صورت صدق نکردن یا غلط بودن شرط، عمل دیگری انجام گردد. if ( condition ) action if true else action if false
دستورهاي قبلي شرط؟ false true عمل 2 عمل 1 دستوربعدي
if else example if (grade >= 90) lettergrade = 'A'; else lettergrade = 'F';
Another example if (grade >= 99) lettergrade = 'A'; else if (grade >= 98) lettergrade = 'B'; else if (grade >= 97) lettergrade = 'C'; else if (grade >= 96) lettergrade = 'D'; else lettergrade = 'F';
while Control Structure • ساختار کنترلی while برای پیاده کردن حلقه استفاده می شود. تا وقتی که شرط while درست باشد دستورات درون حلقه while (بدنه حلقه) پشت سر هم اجرا می گردند. while (condition) do something; the inside is called the "body of the loop"
دستورهاي قبلي While Condition? بدنه حلقه true false دستورهاي بعدي while (condition) { Statements; }
while dangers • بدنه حلقه باید حاوی دستوراتی باشد که شرط حلقه را تغییر می دهند. • در غیر این صورت، حلقه هیچوقت تمام نمی شود. • حلقه هیچوقت تمام نمی شود. • حلقه هیچوقت تمام نمی شود. • حلقه هیچوقت تمام نمی شود. • حلقه هیچوقت تمام نمی شود.
while example lettergrade = 'A'; cutoff = 90; while (grade < cutoff) { lettergrade = lettergrade + 1; cutoff = cutoff - 10; } if (lettergrade > 'F') lettergrade = 'F';
Off topic - increment and decrement operators • برای افزایش مقدار یک متغییر صحیح می توان از دستور زیر استفاده نمود // same as lettergrade = lettergrade + 1; lettergrade++; • برای کاهش مقدار یک متغییر صحیح نیز می شود نوشت: // same as lettergrade = lettergrade - 1; lettergrade--;
More off topic - special assignment operators • عبارت C++ زیر : foo += 17; • مخفف عبارت زیر است: foo = foo + 17; • هم چنین، می توان از دستورات زیر استفاده کرد: -= *= /=
while example modified lettergrade = 'A'; cutoff = 90; while (grade < cutoff) { lettergrade++; cutoff -= 10; } if (lettergrade > 'F') lettergrade = 'F';
do while • ساختار کنترلیdo whileنیز برای پیاده سازی تکرار استفاده می گردد. در این حالت شرط خاتمه حلقه در آخر آن قرار دارد. • لذا، بدنه حلقه حداقل یکبار اجرا می شود. do somestuff; while ( condition );
دستورهاي قبلي do بدنه حلفه While Condition? true false دستورهاي بعدي do while do{ Statements; } while (condition);
do example i=1; do cout << "i is " << i++ << endl; while (i <= 10);