آموزش شرط ها در C++ (شامل if, if…else , Nested if…else)

در این مقاله، ساختارهای مختلف شرط در C++ را بررسی می کنیم. شرطها در برنامهنویسی دقیقاً مثل تقاطعها و دوراهیها در دنیای واقعی هستند. رایانهها به صورت پیشفرض دستورات را خط به خط و مستقیم از بالا به پایین اجرا میکنند. اما با استفاده از شرطها، ما به برنامه هوشِ تصمیمگیری میدهیم تا بر اساس وضعیت فعلی، انتخاب کند که کدام بخش از دستورات اجرا شود و کدام بخش نادیده گرفته شود.
هر شرط بر پایه منطق «درست» (True) یا «نادرست» (False) کار میکند. برنامه یک سوال میپرسد و بسته به جواب آن، مسیر خود را تغییر میدهد.
در زبان C++، ابزارهای مختلفی برای ایجاد این ساختارهای تصمیمگیری وجود دارد:
۱. ساختار پایه (If)
این ساختار، سادهترین و بنیادیترین دروازه تصمیمگیری است. شما یک وضعیت را برای برنامه تعریف میکنید. برنامه به آن وضعیت نگاه میکند؛ اگر آن وضعیت کاملاً حقیقت داشت (True بود)، وارد یک بلوک مخصوص شده و کارهای آن را انجام میدهد. اما اگر وضعیت حقیقت نداشت (False بود)، برنامه اصلاً وارد آن بلوک نمیشود و بیتفاوت از روی آن میپرد تا به ادامه کار خود بپردازد.
۲. ساختار جایگزین یا در غیر این صورت (Else)
این ساختار هیچوقت به تنهایی استفاده نمیشود و همیشه جفت و مکمل ساختار پایه است. در واقع این ساختار نقش «نقشه ب» را بازی میکند. با ترکیب این دو، شما به برنامه میگویید: «اگر وضعیت اول درست بود مسیر اول را برو، در غیر این صورت تحت هر شرایطی مسیر دوم را برو». در این حالت، برنامه حتماً یکی از دو مسیر را انتخاب خواهد کرد و هیچ مسیری بلاتکلیف نمیماند.
۳. شرطهای زنجیرهای (Else If)
گاهی اوقات دنیای واقعی پیچیدهتر از یک دوراهی ساده است و ما با چندین حالت مختلف روبهرو هستیم. این ساختار به ما اجازه میدهد سوالات را به نوبت در یک صف بچینیم. برنامه ابتدا سوال اول را بررسی میکند؛ اگر غلط بود سراغ سوال دوم میرود، اگر دوم هم غلط بود سراغ سوم میرود و الی آخر. نکته مهم اینجاست که به محض اینکه برنامه به اولین جواب «درست» برسد، کارهای مربوط به آن را انجام میدهد و سپس کل این زنجیره را رها میکند (حتی اگر شرطهای بعدی هم درست باشند، دیگر آنها را بررسی نمیکند).
۴. ساختار گزینشی یا تابلوی راهنما (Switch)
وقتی بخواهیم یک مقدار مشخص (مثل انتخاب یک گزینه از منو توسط کاربر) را با لیست طولانی از مقادیر ثابت مقایسه کنیم، به جای نوشتن زنجیرههای طولانی از شرطها، از این ساختار استفاده میکنیم. این ساختار بسیار منظمتر است و مانند یک مرکز تماس (تلفنخانه) عمل میکند؛ مقدار ورودی را میگیرد و مستقیماً آن را به خطی که با آن همخوانی و برابری کامل دارد وصل میکند. این ابزار فقط برای مقایسه «برابریِ دقیق» استفاده میشود و برای بررسی محدودهها (مثلاً بزرگتر یا کوچکتر بودن) کاربردی ندارد.
۵. عملگرهای منطقی (ترکیب شرطها)
برای اینکه بتوانیم تصمیمات پیچیدهتری بگیریم، C++ ابزارهایی برای ترکیب چند شرط با هم به ما میدهد:
-
عملگر «و» (AND): زمانی یک مسیر را تایید میکند که تکتک شرطهای ترکیبشده با هم، همگی درست باشند. حتی اگر یک مورد غلط باشد، کل نتیجه غلط میشود.
-
عملگر «یا» (OR): برای تایید مسیر، فقط کافی است حداقل یکی از شرطهای ترکیبشده درست باشد.
-
عملگر «نقیض» (NOT): کارش برعکس کردن واقعیت است! جواب یک شرط را معکوس میکند؛ اگر چیزی درست باشد آن را به غلط تبدیل میکند و برعکس.
شرط if
if (testExpression)
{
// statements
}
دستور if شرط درون ( ) را بررسی می کند. اگر شرط درست باشد دستورات درون بدنه { }if اجرا می شوند و اگر اشتباه باشد دستورات درون بدنه را اجرا نمی کند.
شرط if چگونه کار می کند؟

تصویر سمت چپ برای درست بودن شرط و تصویر سمت راست برای نادرست بودن شرط است.
فلوچارت شرط if

تصاویر بالا روش اجرای دستور if را نشان می دهند.
مثال ۱ : شرط if در C++
- // Program to print positive number entered by the user
- // If user enters negative number, it is skipped
- #include
- 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;
- }
خروجی ۱
Enter an integer: 5
You entered a positive number: 5
This statement is always executed.
خروجی ۲
Enter a number: -5
This statement is always executed.
شرط if….else در C++
در شرط if….else اگر شرط درست باشد کدهای درون بدنه if اجرا می شوند در غیر اینصورت کدهای درون بدنه else اجرا می شوند.
شرط if…else چکونه کار می کند؟

تصویر سمت چپ شرط درست و تصویر سمت راست شرط نادرست را نشان می دهد.
فلوچارت if…else

مثال ۲ : شرط if … else در C++
- // Program to check whether an integer is positive or negative
- // This program considers 0 as positive number
- #include
- 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;
- }
خروجی
Enter an integer: -4
You entered a negative integer: -4.
This line is always printed.
شرط های تو در تو if … else در C++
دستور if…else با توجه به درستی یا نادرستی شرط دو کد متفاوت را اجرا می کند. گاهی می خواهیم از بین بیش از دو کد انتخاب کنیم.
دستور if…else تو در تو امکان بررسی چندین شرط را به ما می دهد.
ساختار if …. else تو در تو
if (testExpression1)
{
// statements to be executed if testExpression1 is true
}
else if(testExpression2)
{
// statements to be executed if testExpression1 is false and testExpression2 is true
}
else if (testExpression 3)
{
// statements to be executed if testExpression1 and testExpression2 is false and testExpression3 is true
}
.
.
else
{
// statements to be executed if all test expressions are false
}
مثال ۳ : شرط if … else تو در تو در C++
- // Program to check whether an integer is positive, negative or zero
- #include
- 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;
- }
خروجی
Enter an integer: 0
You entered 0.
This line is always printed.
عملگر شرطی سه تایی ?:
عملگر شرطی سه تایی روی ۳ عملوند کار می کند و می تواند به جای به جای if … else استفاده شود. این کد را در نظر بگیرید:
if ( a < b ) {
a = b;
}
else {
a = -b;
}
می توانید کد زیر را جایگزین کد بالا کنید:
a = (a < b) ? b : -b;
عملگر شرطی سه تایی در شرط های کوتاه خوانا تر از if … else است.

ممنون. خیلی خوب بود
پاسخسلام ببخشید من کد رو که می نویسم مثلا وقتی 2 یا 3 تا if دارم و بعدش می خوام else بزارم الس رو فقط برای لاین اخر در نظر میگیره یعنی اگه همون ایف اول صحیح باشه هم دستور اون رو اجرا میکنه هم دستور الس رو میشه یکی راهنماییم کنه لطفا؟
پاسخنه با else if بعد دستور if کار کنید دوست عزیز
سلام اگر دستور if اولی درست نبود دستور دوم اگر دستور خطا یا عرور برای کاربر بود از else استفاده کنید اگر نبود از else if تا اگه کد اولی درست نبود کد دومی را اجرا کند