Java. Вложенный условный оператор. Сложные условия


В блоки «если» и «иначе» могут входить любые другие операторы, в том числе и другие вложенные условные операторы; при этом оператор else относится к ближайшему предыдущему if

Например 
if ( A > 10 )
  if ( A > 100 )
    System.out.print("У вас очень много денег.");
  else
    System.out.print("У вас достаточно денег.");
else
    System.out.print("У вас маловато денег.");
Чтобы легче разобраться в программе, все блоки «если» и «иначе» (вместе с ограничи вающими их скобками) сдвигаются вправо на 2-3 символа - такая запись называется запись «лесенкой»
Запись "лесенкой" является хорошим тоном любого программиста!

Предыдущую задачу можно решить более коротким способом, используя сложные условия. 

Давайте разберемся, что такое СЛОЖНЫЕ УСЛОВИЯ

Простейшие условия состоят из одного отношения (больше, меньше и т.п.) Но иногда необходимо объединение простых условий в более сложные, например: на улице холодно и идет дождь. Два простых условия (на улице холодно), (на улице идет дождь) здесь связаны связкой И.

СЛОЖНОЕ УСЛОВИЕ - состоит из двух или нескольких простых отношений (условий), которые объединяются с помощью логических операций
  И - логическое умножение - на языке Java записывается как && (или and)
  ИЛИ - логчиеское сложение - на языке Java записывается как || (или or)
  НЕ - логчиеское отрицание - на языке Java записывается как 

Операция И - требует одновременное выполнение двух условий
  условие 1 && условие 2   - будет принимать истинное значение, только если оба простых условия истинны одновременно
причем, в языке программирования Java - если условие 1 ложно, то условие 2 проверяться не будет

Операция ИЛИ - требует выполнение хотя бы одного из условий
  условие 1 ||  условие 2   - будет принимать ложное значение, только если оба простых условия ложны одновременно
причем, в языке программирования Java - если условие 1 истинно, то условие 2 проверяться не будет

Операция НЕ 
 ! условие 1 - будет принимать ложное значение, условие 1 истинно и наоборот
Например, следующие два условия равносильны:   A>B     и    !(A<=B)

ПРИОРИТЕТ ВЫПОЛНЕНИЯ ЛОГИЧЕСКИХ ОПЕРАЦИЙ И ОТНОШЕНИЙ
1 операции в скобках
2 операция НЕ
3 логические отношений >, <, >=, <=, ==, !=
4 операция И
5 операция ИЛИ
Для изменения порядка действий используются круглые скобки

ЛОГИЧЕСКИЕ ПЕРЕМЕННЫЕ
Во многих языках программирования есть возможность использовать переменные, которые хранят логические значения ("истина"/"ложь"). В С++ такие переменные могут принимать значения true (истина) или false (ложь). Например, фрагмент программы 
boolean a, b;
a = true;
b = false;
System.out.print(a || b);
Выведет на экран 1 (что соответствует значению true, значению false соответствует 0).
Логические переменные относятся к типу bool, названной в честь английского математика Джорджа Буля - создателя алгебры логики.