عبارت شرطی تو در تو شرایط دشوار


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

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

بیایید بفهمیم شرایط پیچیده
چیست
ساده ترین شرایط از یک رابطه تشکیل شده است (بزرگتر از، کمتر از، و غیره) اما گاهی اوقات لازم است شرایط ساده را با شرایط پیچیده تر ترکیب کنیم، برای مثال: بیرون سرد است و باران می بارد. دو شرط ساده (بیرون هوا سرد است)، (بیرون باران می بارد) در اینجا توسط کوپلا I به هم متصل می شوند.

شرایط COMPLEX - شامل دو یا چند رابطه (شرایط) ساده است که با استفاده از عملیات منطقی ترکیب می شوند
  AND - ضرب بولی - در جاوا به صورت && (یا و)
  OR - اضافه منطقی - در جاوا به صورت || (یا < قوی >یا)
  نه - نفی منطقی - به صورت  در جاوا نوشته شده است!   ;

عملیات AND - به انجام همزمان دو شرط نیاز دارد
 شرط 1 && شرط 2  - فقط در صورتی درست خواهد بود که هر دو شرط ساده همزمان درست باشند
علاوه بر این، در زبان برنامه نویسی جاوا - اگر شرط 1 نادرست باشد، شرط 2 بررسی نمی شود

عملیات OR - حداقل به یکی از شرایط نیاز دارد
  شرط 1 ||  شرط 2   - فقط در صورتی به نادرست ارزیابی می شود که هر دو شرط ساده همزمان نادرست باشند
به‌علاوه، در زبان برنامه‌نویسی جاوا - اگر شرط 1 درست باشد، شرط 2 بررسی نمی‌شود

عملیات نه 
 ! شرط 1 - به نادرست ارزیابی می شود، شرط 1 درست است و بالعکس
به عنوان مثال، دو شرط زیر معادل هستند:   A>B     و    !(A<=B)

اولویت اجرای عملیات منطقی و روابط
1 عملیات در پرانتز
2 عملیات نیست
3 رابطه منطقی >, <, >=, <=, ==, !=
4 عملیات و
5 عملیات OR
از پرانتز برای تغییر ترتیب اعمال استفاده می شود

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