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


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

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

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

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

Сложное условие - состоит из двух или нескольких простых отношений (условий), которые объединяются с помощью логических операций:
 Название Как записывается на C#
И &&
ИЛИ ||
НЕ !

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

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

Операция НЕ  (логическое отрицание)
 ! условие1  будет принимать ложное значение, если условие1 истинно и наоборот.

Приоритет выполнения логических операций и отношений.
1. Операции в скобках.
2. Операция НЕ.
3. Логические отношения >, <, >=, <=, ==, !=.
4. Операция И.
5. Операция ИЛИ.
Для изменения порядка действий используются круглые скобки.

Логические переменные.
Во многих языках программирования есть возможность использовать переменные, которые хранят логические значения (истина/ложь). В С# такие переменные могут принимать значения true (истина) или false (ложь). Например, фрагмент программы: 
bool a, b;
a = true;
b = false;
Console.WriteLine(a || b);

Выведет на экран 1 (что соответствует значению true - значению false соответствует 0).
Логические переменные относятся к типу bool, названной в честь английского математика Джорджа Буля - создателя алгебры логики.