(C++) دستور شرطی تودرتو. شرایط دشوار


عبارت شرطی تودرتو
در بلوک‌های «if». و "دیگر" ممکن است شامل هر عبارات دیگری از جمله سایر عبارات شرطی باشد. این منجر به عبارات شرطی تودرتو; عبارت else به نزدیکترین if قبلی اشاره دارد.
 
مثال
اگر (A > 10) اگر (A > 100 ) cout << "شما پول زیادی دارید."؛ دیگر cout << "شما پول کافی دارید." دیگر cout << "شما پول کافی ندارید." برای سهولت درک برنامه، همه «if» مسدود می‌شوند و "دیگر" (همراه با پرانتزهایی که آنها را مشخص می کند) با 2-3 نویسه به سمت راست منتقل می شوند - به این نقد نردبان
می گویند.
ثبت "نردبان» فرم خوبی برای هر برنامه نویسی است!

شرایط پیچیده
مشکل قبلی را می توان با استفاده از شرایط پیچیده به روش کوتاه تری حل کرد. 

بیایید بفهمیم که یک شرایط پیچیده چیست.

شرایط ساده از یک رابطه (بزرگتر از، کمتر از و غیره) تشکیل شده است. اما گاهی اوقات لازم است شرایط ساده را با شرایط پیچیده تر ترکیب کنیم. مثلاً بیرون هوا سرد است و باران می بارد. دو شرط ساده (بیرون هوا سرد است)، (بیرون باران می بارد) در اینجا با AND پیوند داده شده اند.
 
شرایط پیچیده - شامل دو یا چند شرط ساده است که با عملیات منطقی ترکیب می شود .
 
اتصالات منطقی در C++
&& - ضرب منطقی (AND);
||  - اضافه منطقی (OR)؛
!    - نفی منطقی (NOT).

ضرب منطقی (عملیات AND)  نیاز به دو شرط دارد که به طور همزمان برآورده شوند:
condition_1 && condition_2  
فقط در صورتی که هر دو شرط ساده همزمان درست باشند به درستی ارزیابی می شود.
علاوه بر این، در زبان برنامه نویسی C، اگر condition_1 نادرست باشد، condition_2 بررسی نمی شود.

ضرب منطقی (عملیات OR) به حداقل یکی از شرایط زیر نیاز دارد:
شرایط_1 || شرط_2
فقط در صورتی به نادرست ارزیابی می شود که هر دو شرط ساده همزمان نادرست باشند.
علاوه بر این، در زبان برنامه نویسی C، اگر condition_1 درست باشد، condition_2 بررسی نخواهد شد.

ضرب منطقی (عملیات نه)
 !condition_1 
اگر condition_1  درست و بالعکس.
به عنوان مثال، دو شرط زیر معادل هستند:   A>B   و  !(A<=B).
 
اولویت اجرای عملیات و روابط منطقی
1. عملیات در پرانتز.
2. عملیات NOT.
3. روابط منطقی >, <, >=, <=, ==, !=.
4. عملیات I.
5. عملیات OR.
از پرانتز برای تغییر ترتیب اقدامات استفاده می شود.

 
متغیرهای بولی
در بسیاری از زبان های برنامه نویسی، می توان از متغیرهایی استفاده کرد که مقادیر بولی ("true"/"false") را ذخیره می کنند. در C++، چنین متغیرهایی می توانند مقادیر true (true) یا false (false) را بگیرند. به عنوان مثال، یک قطعه برنامه:  bool a, b; a = درست b=نادرست cout << یک || ب 1 را نمایش می دهد (که با مقدار true مطابقت دارد، مقدار false مربوط به 0 است).

متغیرهای بولی از نوع bool هستند که از نام ریاضیدان انگلیسی جورج بول، خالق جبر منطق نامگذاری شده است.