Главная страница

АБОБА. Справочник по программированию на Java Методическое пособие


Скачать 242.41 Kb.
НазваниеСправочник по программированию на Java Методическое пособие
АнкорАБОБА
Дата20.02.2022
Размер242.41 Kb.
Формат файлаdocx
Имя файла12642_java_method_1.docx
ТипСправочник
#368066
страница19 из 67
1   ...   15   16   17   18   19   20   21   22   ...   67

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


Операции сравнения определяют отношение одного операнда с другим. В частности, они определяют равенство и порядок следования.

  • == Равно

  • != Не равно

  • > Больше

  • < Меньше

  • >= Больше или равно

  • <= Меньше или равно

Результат выполнения этих операций – значение типа boolean. Наиболее часто операции сравнения используют в выражениях, которые управляют оператором if и различными операторами цикла.

В Java можно сравнивать значения любых типов, в том числе целые значения, значения с плавающей точкой, символы и булевские значения, используя проверку равенства == и проверку неравенства !=. Обратите внимание, что Java равенство обозначают двумя знаками “равно”, а не одним. (Одиночный знак “равно” – символ операции присваивания.) Сравнение с помощью операций упорядочения применимо только к числовым типам. То есть сравнение для определения того, какой из операндов больше или меньше другого, можно выполнять только для целочисленных операндов, операндов с плавающей точкой или символьных операндов.

Как уже было отмечено, результат выполнения операции сравнения представляет собой значение типа boolean. Например, следующий фрагмент кода вполне допустим:

int a = 4;

int b = 1;

boolean c = a < b;

В данном случае результат выполнения операции a < b (который равен false) сохраняется в переменной c.

Те читатели, которые знакомы с языками C/C++, должны обратить внимание на следующее. В программах на C/C++ следующие типы операторов встречаются очень часто:

int done;

// ...

if(!done) ... // Допустимо в C/C++

if(done) ... // но не в Java.

В Java-программе эти операторы должны быть записаны следующим образом:

if(done == 0) ... // Это стиль Java.

if(done != 0) ...

Это обусловлено тем, что в Java определение значений “истинно” и “ложно” отличается от их определений в языках C/C++. В C/C++ истинным считается любое ненулевое значение, а ложным – ноль. В Java значения true (истинно) и false (ложно) – нечисловые значения, которые никак не сопоставимы с нулевым или ненулевым значением.

Поэтому, чтобы сравнить значение с нулевым или ненулевым значением, необходимо явно использовать одну или несколько операций сравнения.

Булевские логические операции


Описанные в этом разделе логические операции работают только с операндами типа boolean. Все логические операции с двумя операндами объединяют два значения типа boolean, образуя результирующее значение типа boolean.

  • & Логическое AND (И)

  • | Логическое OR (ИЛИ)

  • ^ Логическое XOR (исключающее OR (ИЛИ))

  • || Замыкающее OR

  • BookNew_JAVA-7.indb 107 02.06.2007 1:06:42

  • 108 Часть I. Язык Java

  • Операция Описание

  • && Замыкающее AND

  • ! Логическое унарное NOT (НЕ)

  • &= AND с присваиванием

  • |= OR с присваиванием

  • ^= XOR с присваиванием

  • == Равно

  • != Не равно

  • ?: Тернарная операция if-then-else

Логические булевские операции &, | и ^ действуют применительно к значениям типа boolean точно так же, как они действуют по отношению к битам целочисленных значений. Логическая операция ! инвертирует булевское состояние: !true == false и !false == true.

Ниже приведена программа, которая выполняет практически те же действия, что и пример программы BitLogic, представленный ранее, но она работает с логическими значениями типа boolean, а не с двоичными разрядами.

// Демонстрация применения булевских логических операций.

class BoolLogic {

public static void main(String args[]) {

boolean a = true;

boolean b = false;

boolean c = a | b;

boolean d = a & b;

boolean e = a ^ b;

boolean f = (!a & b) | (a & !b);

boolean g = !a;

System.out.println(" a = " + a);

System.out.println(" b = " + b);

System.out.println(" a|b = " + c);

System.out.println(" a&b = " + d);

System.out.println(" a^b = " + e);

System.out.println("!a&b|a&!b = " + f);

System.out.println(" !a = " + g);

}

}

Выполняя эту программу, легко убедиться, что к значениям типа boolean применяются те же логические правила, что и к битам.
1   ...   15   16   17   18   19   20   21   22   ...   67


написать администратору сайта