Предыдущую задачу можно решить более коротким способом, используя сложные условия.
Давайте разберемся, что такое СЛОЖНЫЕ УСЛОВИЯ
Простейшие условия состоят из одного отношения (больше, меньше и т.п.) Но иногда необходимо объединение простых условий в более сложные, например: на улице холодно и идет дождь. Два простых условия (на улице холодно), (на улице идет дождь) здесь связаны связкой И.
СЛОЖНОЕ УСЛОВИЕ - состоит из двух или нескольких простых отношений (условий), которые объединяются с помощью логических операций
И - логическое умножение - на языке 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
, названной в честь английского математика Джорджа Буля - создателя алгебры логики.