Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3 - Лексические структуры языка. Типы данных. И...docx
Скачиваний:
9
Добавлен:
19.11.2019
Размер:
93.32 Кб
Скачать

4.6 Операции сравнения

В Java определены следующие операции сравнения:

"==" (равно), "!=" (не равно),

">" (больше), ">=" (больше или равно),

"<" (меньше), "<=" (меньше или равно)

Данные операции имеют два операнда и возвращают булевское значение, соответствующее результату сравнения (false или true). Следует обратить внимание, что при сравнении двух величин на равенство в Java, как и в C и в C++, используются символы "==" (два идущих без пробела друг за другом знака равенства), в отличие от оператора присваивания, в котором используется символ "=". Использование символа "=" при сравнении двух величин либо вызывает ошибку при компиляции, либо приводит к неверному результату.

Примеры операций сравнения:

int x1 = 5, x2 = 5, x3 = 3, x4 = 7;

boolean isEqual = x1 == x2; // isEqual = true

boolean isNonEqual = x1 != x2; // isNonEqual = false

boolean isGreater = x1 > x3; // isGreater = true

boolean isGreaterOrEqual = x2 >= x3; // isGreaterOrEqual = true

boolean isLess = x3 < x1; // isLess = true

boolean isLessOrEqual = x1 <= x3; // isLessOrEqual = false

4.6.1 Логические операции

Логические операции выполняются над булевскими переменными и их результатом также является значение типа boolean. В Java определены следующие логические операции:

  • отрицание "!" – замена false на true, или наоборот;

  • операция И "&" – результат равен true, только, если оба операнда равны true, иначе результат – false;

  • операция ИЛИ "|" – результат равен true, только, если хотя бы один из операндов равен true, иначе результат – false.

  • операция исключающее ИЛИ "^" – результат равен true, только, если операнды не равны друг другу, иначе результат – false.

  • Операции "&", "|" и "^" можно, также как и соответствующие побитовые операции использовать в составных операциях присваивания: "&=", "|=" и "^="

Кроме того, к булевским операндам применимы операции "==" (равно) и "!=" (не равно).

Как видно из определения операций ИЛИ и И, операция ИЛИ приводит к результату true, когда первый операнд равен true, независимо от значения второго операнда, а операция И приводит к результату false, когда первый операнд равен false, независимо от значения второго операнда.

В Java определены еще две булевские операции: вторые версии булевских операций И и ИЛИ, известные как укороченные (short-circuit) логические операции: укороченное И "&&" и укороченное ИЛИ "||". При использовании этих операций второй операнд может не выполнять если его вычисление в данном случае не влияет на результат.

Примеры булевских операций:

int x = 8;

boolean isInRange = x > 0 && x < 5; // isInRange = false

boolean isValid = x > 0 || x > 5; // isValid = true

boolean isNotValid = !isValid; // isNotValid = false

boolean isEqual = isInRange == isValid; // isEqual = false

boolean isNotEqual = isInRange != isValid; // isNotEqual = true

4.7 Условная операция

Условная операция записывается в форме

выражение-1 ? выражение-2 : выражение-3

При этом сначала вычисляется выражение выражение-1, которое должно дать булевское значение, а затем, если выражение-1 имеет значение true, вычисляется и возвращается выражение-2 как результат выполнения операции, либо (если выражение-1 имеет значение false), вычисляется и, как результат выполнения операции, возвращается выражение-3.

Пример условной операции:

x = n > 1 ? 0 : 1;

Переменной x будет присвоено значение 0, если n > 1 (выражение n > 1 имеет значение true) или 1, если n ≤ 1 (выражение n > 1 имеет значение false).