به پنجمین جلسه از آموزش برنامه نویسی ++C خوش آمدید. در این جلسه با مبحث دستورات شرطی در زبان ++C آشنا خواهیم شد.
دستورات شرطی
هرگاه بخواهیم اجرای برخی از دستورات برنامه را به شرطی وابسته کنیم، از دستورات شرطی استفاده می کنیم. برای مثال میخواهیم اگر مقدار یک متغیر کمتر از ۱۰ بود یک اتفاق خاص روی دهد و اگر مقدار آن متغیر بیشتر از ۱۰ بود یک اتفاق دیگر. در چنین مواردی از دستورات شرطی استفاده می کنیم. این دستورات در همه زبان های برنامه نویسی موجود است و در ادامه به بررسی هر یک از آنها در زبان ++C خواهیم پرداخت. دستورات شرطی در زبان ++C عبارتند از:
- دستور if
- دستور if else
- عملگر عبارت شرطی
- دستور else if
- دستور switch
دستور if
الگوی استفاده از دستور if بدین صورت است: ;if (condition) statement
در الگوی فوق عبارت condition همان شرطی است که می بایست تست شود و چنانچه درست باشد، statement اجرا می شود. statement نیز هر دستور قابل اجرایی در زبان ++C است. پس الگوی فوق را بدین شکل می توان تشریح کرد. ابتدا شرط موجود در داخل پرانتز (condition) تست شده و چنانچه ارزش درست داشته باشد، دستورات پس از آن (statement) اجرا خواهند شد.
دستور if else
در دستور if چنانچه شرط غلط باشد، عکس العملی انجام نمی شود. این نقص با استفاده از دستور if else برطرف می شود. دستور if else هر دو حالت ممکن برای شرط را تست می کند (درست و غلط). الگوی استفاده از دستور if else بدین صورت است: ;if (condition) statement1 else statement2
در الگوی فوق چنانچه شرط درست باشد، statement1 و چنانچه غلط باشد، statement2 اجرا می شود. به قطعه کد زیر توجه کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
int main() { int number = 6; if(number < 10) { cout << number << " is less than 10" << endl; } else { cout << number << " is greater than 10" << endl; } return 0; } |
در برنامه بالا در خط ۵ مقدار متغیر number تست شده و کوچکتر بودن آن از عدد ۱۰ بررسی می شود. چنانچه شرط درست باشد، پیغام موجود در خط ۶ و چنانچه غلط باشد، پیغام موجود در خط ۹ در خروجی چاپ خواهد شد.
خروجی قطعه کد فوق بدین صورت است:
1 |
6 is less than 10 |
عملگر عبارت شرطی
عملگر عبارت شرطی حالت خلاصه شده ای از ساختار if else است و استفاده از آن اختیاری است. الگوی استفاده از عملگر عبارت شرطی بدین صورت است: ;condition) ? expression1 : expression2)
در الگوی فوق شرط داخل پرانتز تست شده و چنانچه درست باشد، حاصل کل عبارت برابر با expression1 و چنانچه غلط باشد، حاصل کل عبارت برابر با expression2 خواهد بود. دقت داشته باشید که در الگوی عملگر عبارت شرطی expression1 و expression2 مانند statement1 و statement2 دستورات قابل اجرا نیستند. یک مقدار هستند که به جای کل عبارت قرار می گیرند. برای توضیحات بیشتر به ویدئوی ضمیمه آموزش مراجعه کنید.
به قطعه کد زیر توجه کنید:
1 2 3 4 5 6 7 8 9 10 |
int main() { int m = 10; int n = 15; int min = (m < n) ? m : n ; cout << "min(" << m << "," << n << ") = " << min << endl; return 0; } |
در برنامه بالا در خط ۶ مقدار متغیر m با n مقایسه شده و چنانچه از آن کوچکتر باشد، حاصل کل عبارت برابر با عبارت بعد از علامت سوال (m) و چنانچه کوچکتر نباشد، حاصل کل عبارت برابر با عبارت بعد از دو نقطه (n) خواهد بود. در نهایت نتیجه درون متغیر min قرار گرفته و در خروجی چاپ می شود.
خروجی قطعه کد فوق بدین صورت است:
1 |
min(10,15) = 10 |
دستور else if
دستور else if جهت بررسی حالت های مختلف یک چیز استفاده می شود. فرض کنید می خواهیم مقدار یک متغیر کاراکتری که حاوی حرف اول نام تعدادی از کشورهای جهان است را بررسی کرده و نام کامل کشور مورد نظر را چاپ کنیم. مقدار این متغیر می تواند هر یک از مقادیر زیر باشد : England, Germany, Italy, France, Russia . جهت بررسی این حالت های مختلف از دستور else if استفاده می کنیم.
به قطعه کد زیر توجه کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
int main() { char country; cout << "England , Germany , Italy , France , Russia ? (E | G | I | F | R) : "; cin >> country; if(country == 'E')) cout << "country: England" << endl; else if(country == 'G') cout << "country: Germany" << endl; else if(country == 'I') cout << "country: Italy" << endl; else if(country == 'F') cout << "country: France" << endl; else if(country == 'R') cout << "country: Russia" << endl; else cout << "Error..." << endl; return 0; } |
در برنامه بالا در خط ۵ پیغامی مناسب برای کاربر چاپ شده تا متوجه شود که برای نام هر کشور چه حرفی را باید وارد کند. این کاراکتر را در خط ۷ از ورودی دریافت کرده و مقایساتمان را شروع می کنیم. در خط ۹ مقدار متغیر country با حرف E مقایسه شده و چنانچه با آن برابر باشد، پیغام country: England در خروجی چاپ می شود. مسئله اینجاست که ممکن است این شرط برقرار نبوده و مقدار این متغیر برابر با هر یک از مقادیر دیگر باشد. در ادامه این کد، برای بررسی هر یک از این حالت های دیگر از ساختار else if استفاده شده است.
خروجی قطعه کد فوق بدین صورت است:
1 2 |
England , Germany , Italy , France , Russia ? (E | G | I | F | R) : G country: Germany |
دستور switch
دستور switch جایگزینی بهتر و منطقی تر برای ساختار else if است. در این دستور حالت های مختلف یک چیز توسط دستورات case متعدد بررسی شده و هر کدام از این case ها (موارد) که برقرار باشند، دستور متناسب با آن اجرا می شود. دستور default بخش اختیاری دستور switch است و زمانی اجرا می شود که مقدار متغیر مورد نظر برابر با هیچکدام از مقادیر موجود در case ها نباشد.
نکته دیگری که در مورد دستور switch وجود دارد این است که در انتهای هر یک از case ها می بایست از دستور break (به معنی شکستن) استفاده کنیم. ضرورت استفاده از دستور break این است که چنانچه از آن استفاده نکنیم، پس از اجرای case موردنظر، برنامه به خطوط بعدی رفته و دستورات جلوی case های دیگر را هم اجرا می کند. می توانید با برداشتن دستورات break موجود در قطعه کد زیر نتیجه را مشاهده کنید.
به قطعه کد زیر توجه کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
int main() { char country; cout << "England , Germany , Italy , France , Russia ? (E | G | I | F | R) : "; cin >> country; switch(country) { case 'E' : cout << "country: England" << endl; break; case 'G' : cout << "country: Germany" << endl; break; case 'I' : cout << "country: Italy" << endl; break; case 'F' : cout << "country: France" << endl; break; case 'R' : cout << "country: Russia" << endl; break; default : cout << "Error..." << endl; break; } return 0; } |
در قطعه کد فوق همان برنامه مربوط به دستور else if با دستور switch بازنویسی شده است. به نحوه استفاده از دستورات case و همینطور دستورات break آخر case ها دقت داشته باشید. در خط ۱۷ نیز نحوه استفاده از دستور default را مشاهده می کنید.
به پایان این جلسه آموزشی رسیدیم. در آینده با بخشهای دیگری از زبان ++C آشنا خواهیم شد. با ما همراه باشید…
11 دیدگاه. ارسال دیدگاه جدید
سلام
خواستم تشکر کنم از آموزشهایی که قرار دادین و اینکه عالی آموزش میدین
عالی عالی
خیلی خیلی عالی استاد آموزش میدید. خدا خیرتون بده. نکته های آموزشیتون رو باید با طلا نوشت. مرسی
استاد ببخشید میشه بگید اگر بخواهیم بنویسیم
یک عدد از وردی بگیر اگر بین ۵۰ تا ۱۰۰ بود برامون تایپ کن A
اگر بین ۰ تا ۵۰ بود تایپ کن B
تورو خدا هرچه زودتر بهم بگید خیلی ممنون میشم
به این صورت هست دوست عزیز:
خیلی عالی آموزش میدید خدا خیرتون بده
هر کس کلمه ای به من بیاموزد، مرا بنده خود کرده است.
سلام. من خودم برنامه نویس ++c و #c هستم.
برای یکی از دوستانم دنبال فیلم آموزشی میگشتم که شما رو پیدا کردم. عالی تدریس میکنید.👍
ممنونم دوست من، لطف دارید.
سلام آقای زعفری
من دانشجوی ترم ۲ کامپیوتر هستم.
با توجه به مجازی بودن کلاسها توی بعضی موارد از برنامه سازی سی پلاس پلاس یه خورده مشکل داشتم که از طریق یک کانال تلگرامی با فیلم ها و سایت شما آشنا شدم.
دمتون گرم خیلی روان و واضح تدریس میکنید بهتر از اساتید دانشگاه
خدا خیرتون بده
موفق باشید
با سلام
نحوه تدریس مطالب و نحوه توضیح بسیار عالی بود.
خیلی متشکرم. واقعا بی نظیر تدریس میکنید.
ممنونم دوست عزیز لطف دارید.