با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، با یکی دیگر از جلسات دوره کامل آموزش ++C در خدمت شما دوستان هستیم . در بخش قبلی با عملگر ها در ++C آشنا شدید، در این جلسه قصد داریم تا با دستورات شرطی در ++C از جمله دستور if در ++C , دستورات if else و دستور switch در ++C آشنا شویم.
دستورات شرطی برای انجام کار ها و تصمیم گیری های مختلف بر اساس شرایط مختلف به کار می رود.
ساختار دستور:
1 2 3 4 | if (عبارت شرطی) { // کد } |
دستور if عبارت شرطی درون پرانتز را بررسی می کند.
اگر شرط درست باشد دستورات داخل بلوک اجرا می شوند و اگرنه که هیچی.
مثال:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #include <iostream> using namespace std; int main() { int number; cout << "Enter an integer: "; cin >> number; // checks if the number is positive if ( number > 0) { cout << "You entered a positive integer: " << number << endl; } cout << "This statement is always executed."; return 0; } |
خروجی ۱:
1 2 3 | Enter an integer: 5 You entered a positive number: 5 This statement is always executed. |
خروجی ۲:
1 2 | Enter a number: -5 This statement is always executed. |
این دستور نیز ابتدا شرط درون پرانتز را بررسی می کند.
اگر شرط درست باشد کد درون بلوک if اجرا می شود و اگر شرط درست نباشد کد درون بلوک else اجرا می شود.
مثال:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include <iostream> using namespace std; int main() { int number; cout << "Enter an integer: "; cin >> number; if ( number >= 0) { cout << "You entered a positive integer: " << number << endl; } else { cout << "You entered a negative integer: " << number << endl; } cout << "This line is always printed."; return 0; } |
خروجی به شکل زیر می باشد:
1 2 3 | Enter an integer: -4 You entered a negative integer: -4. This line is always printed. |
نحوه کار این نوع دستور نیز مانند دستورات بالا می باشد با این تفاوت که در اینجا ما به جای یک شرط از چند شرط استفاده می کنیم.
ساختار دستور:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | if (شرط 1) { // اگر شرط 1 درست باشد کد این بلوک اجرا می شود (شرط های دیگر بررسی نمی شود) } else if(شرط 2) { // اگر شرط 2 درست باشد کد این بلوک اجرا می شود (شرط های دیگر بررسی نمی شود) } else if (شرط 3) { // اگر شرط 3 درست باشد کد این بلوک اجرا می شود(شرط های دیگر بررسی نمی شود) } . . else { // اگر هیچ کدام از شرط ها درست نباشد کد این بلوک اجرا می شود. } |
مثال:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include <iostream> using namespace std; int main() { int number; cout << "Enter an integer: "; cin >> number; if ( number > 0) { cout << "You entered a positive integer: " << number << endl; } else if (number < 0) { cout<<"You entered a negative integer: " << number << endl; } else { cout << "You entered 0." << endl; } cout << "This line is always printed."; return 0; } |
خروجی:
1 2 3 | Enter an integer: 0 You entered 0. This line is always printed. |
این عملگر را می توان به جای if…else استفاده کرد.
کد if…else :
1 2 3 4 5 6 | if ( a < b ) { a = b; } else { a = -b; } |
کد با عملگر ? :
1 | a = (a < b) ? b : -b; |
هر دو کد بالا عملکرد یکسانی دارند.
از دستور switch در ++C برای بررسی یک مقدار با موارد case مختلف استفاده می شود که اگر با هر موردی برابر بود، کد مربوط به آن مورد اجرا خواهد شد.
ازین دستور در بیشتر موارد به جای if else متوالی استفاده می شود.
ساختار دستور:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | switch (n) { case مقدار 1: // کد اجرا می شود اگر n با مقدار 1 برابر باشد break; case مقدار 2: // کد اجرا می شود اگر n با مقدار 2 برابر باشد break; . . . default: // اگر هیچ تطبیقی نباشد کد ابن بلوک اجرا می شود. } |
فراموش نکنیذ تا از دستور break بعد از هر case استفاده کنید. زیرا این کار از مقایشه های بی دلیل با سایر موارد جلوگیری می کند.
مثال:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #include <iostream> using namespace std; int main() { char o; float num1, num2; cout << "Enter an operator (+, -, *, /): "; cin >> o; cout << "Enter two operands: "; cin >> num1 >> num2; switch (o) { case '+': cout << num1 << " + " << num2 << " = " << num1+num2; break; case '-': cout << num1 << " - " << num2 << " = " << num1-num2; break; case '*': cout << num1 << " * " << num2 << " = " << num1*num2; break; case '/': cout << num1 << " / " << num2 << " = " << num1/num2; break; default: // operator is doesn't match any case constant (+, -, *, /) cout << "Error! operator is not correct"; break; } return 0; } |
خروجی:
1 2 3 4 5 | Enter an operator (+, -, *, /): + - Enter two operands: 2.3 4.5 2.3 - 4.5 = -2.2 |
جلسه آموزش دستورات شرطی در C++ نیز به پایان رسید.
در جلسه بعد به آموزش حلقه های تکرار در ++C خواهیم پرداخت. با ما همراه باشید
ََA.R.R
سلام خسته نباشید خدمت شما وست عزیز ، من تازه شروع به برنامه نویسی سی پلاس پلاس کرده ام می خوام بدونم چطور میتونم در داخل سی پلاس پلاس کد های که با دستور if نوشته ام وقتی که اجراش میکنم اون دستوری که نوشتم رو تایپ می کنم اجرا نمیشه و به دستور else پرش میکنه برای مثال این کد رو وقتی اجرا می کنم همین How are you را تایپ میکنم جوابش رو نمیده و به دستور else پرش میکنه. نگاه کنید و بگید چطور می تونم این کد رو درست بنویسم.
#include
using namespace std;
main()
{
string s;
cout<>s;
if(s == “How are you?”) cout<<"I'm fine";
else cout<<"I'm sorry, I didn't understand what you said";
{
پی وی لرن
سلام
شما باید از دستور cin>> استفاده کرده و مقدار را باید بخوانید و سپس در داخل s قرار دهید تا دستور به درستی خوانده شود.
یاس
سلام خسته نباشید من به تازگی این زبانو شروع کردم میشه لطفا این مثالو برام توضیح بدید خیلیییییی ممنون میشم. مثال آخری switch
۱_ فقط از یه include استفاده کرده چرا از conio و math استفاده نکرده ؟
۲_ خط دوم رو اصلا نمی فهمم منظورش چی بوده . یعنی الان داره تعریف میکنه اسمی که استفاده میکنه دانش اموز std هست ؟
۳_منظورش از char o اینجا چیه؟ یعنی یه کاراکتر رو انتخاب کرد به عنوان اسم سوییچ و توی cout تعریفش کرد ؟
۴_ توی خط چهارم نوشته اینت بعد پایین اومده کاراکتر و فلوات معرفی کرده در حالی که شما نوشتین فقط میتونیم از اینت ها و کاراکترها استفاده کنیم . از طرفی اینت رو کاراکتر o هم معرفی کرده من واقعا گیج شدم . میشه این قسمت داده ها رو هم بگین
۵_در آخر من متوجه نشدم بالاخره مقدار عبارت سوییچ برابر با یک کدوم از اون کیس ها بود یا نه ؟ اگه برابر هستو جواب داره از توی کیس ها با کدوم کیس ؟ و از کجا فهمیدیم کدوم کیس ؟ دوم اگه جواب نداره و با هیچ کیسی برابر نبود یعنی از دیفالت استفاده میکنه حتمااااا ؟
۶_ قسمت پایین مثال نوشتین خروجی . یعنی الان جواب آخرمون این شد ؟ نمیفهمم اعداد خروجی رو از کجا اورده و چرا جواب این شده ؟
خیلیییییییییییییییییییییییی ممنونم خواهش میکنم به سوالام جواب بدین متشکرم ازتون
محمد صادق نوری
عالی بود .
من تازه وارید برنامه نویسی شدم .
من چی کار ها را انجام بیدم از کجا چیجوری شروع کنم در این قسمت رهنمایی ام کنید .
باتشکر : محمد صادق نوری .
صادق
سلام. به نظر من اول بهتره روی مهارت حل مسئله (الگوریتم و فلوچارت) کار کنید. بعد می تونید سراغ مفاهیم برنامه نویسی مثل متغیر ها، تابع ها، حلقه های تکرار و … برید. تمرین و نوشتن کد رو فراموش نکنید. تا وقتی که دست به کد نشدید با چالش های برنامه نویسی مواجه نمیشید. در ضمن هدف شما از یادگرفتن برنامه نویسی چیه؟ این مورد خیلی مهمه و اگه خواستید به من بگید تا بهتر راهنماییتون تا چه زبان برنامه نویسی رو انتخاب کنید.
محمد صادق نوری
سلام مجدد .
عارضم به حضور شما که من میخوام توی شرکت های بزرگ کار کنم در بخش امنیت و سیستم مدیریتی شان .
الان من کدام زبان رو بیخونم ؟ و چی کار ها رو انجام بیدم ؟
متشکرم ازاین که رهنمایی ام میکنید..
صادق
برای کار تو حوزه امنیت زبان های ++C و پایتون عالی هستند. پیشنهاد می کنم با زبان پایتون شروع کنید. همچنین توانایی کار با سیستم عامل لینوکس (گنو/لینوکس) و تسلط داشتن به اون خیلی میتونه کمک کنه و مفید باشه.
nader
سلام میشه لطفا با دستور if این حل کنین برنامهای بنویسید که اگر عدد اول بزرگتر از ۰بود چاپ کن عدد دوم را دوبرابروگرنه چاپ کن عدد سوم را سه برابر
صادق
سلام.
int a,b,c;
cin >> a,b,c;
if (a>0){
cout << b * 2;
}
else {
cout << c * 3;
}
محمدی
سلام میشه بگین مشکل این قطعه کد چیه و چرا ارور میده؟
#include
using namespace std;
int main(){
int a,b,c,m,n,y;
cout << "inter number a" <> a;
cout << "inter number b" <> b;
cout << "inter number c" <> c;
m= (a >b && a>c ? cout <<"Maximum number:a" :cout<a && b>c ? cout << "Maximum number:b" : cout<a && c>b ? cout << "Maximum number:c " : cout<<"") ;
return 0;
}
پی وی لرن
با سلام
شما نمی توانید مقداری را که می خواهید داخل متغییر قرار دهید را cout کنید ابتدا مقدار را داخل متغییر m قرار دهید سپس m را چاپ کنید.
محمدی
واقعا ممنونم ازتون 🙂