Какие бывают операторы в языке Java

Операторы в Java

В Java поддерживаются следующие арифметические операторы (табл. 2.4).

Таблица 2.4. Арифметические операторы
+ Сложение
Вычитание
* Умножение
/ Деление
% Вычисление остатка
++ Инкремент
Декремент
+= Присваивание со сложением
-= Присваивание с вычитанием
*= Присваивание с умножением
/= Присваивание с делением
%= Присваивание с вычислением остатка
Первые пять операторов всем знакомы по школьному курсу математики, причем два так называемых унарных оператора, и можно использовать для указания знака данною числа. Далее следуют операторы под названием инкремент (++) и декремент (- -).
Один из них (инкремент) прибавляет к значению переменной единицу, другой (декремент), наоборот, убавляет единицу.

Данные операторы указываются без пробела рядом со значением переменной. Если они стоят слева от переменной, то это называется префиксной формой инкремента или декремента, и это означает, что вначале к переменной прибавляется (или от нее отнимается) единица, а потом она используется в выражении. Если же инкремент (или декремент) ставится после имени переменной, то это называется постфиксной формой, и это означает, что переменная вначале используется в выражении, а затем к ней прибавляется (или от нее отнимается) единица.

Остальные пять операторов используются следующим образом:
а += b
аналогично записи:
а = а + b

 

Пример использования всех этих операторов приведен в листинге 2.9.

Листинг 2.9.
Пример использования арифметических операторов

class Example {
    public static void main (String args[]) {
        int a,b,c,d,e;
        a=10
        b= 11;
        c= 12;
        a+ = b; // a=21
        a *= c; // a = 252
        a = a - c; // a = 240
        a -= c; // a = 228
        d = 5;
        e = 10;
        System.out.println (++d); Выведется 6
        System.out.println (d++); Выведется 6
        System.out.println (e--) ; Выведется 10
        System.out.println (--e) ; Выведется 8
    }
}

 

Теперь рассмотрим битовые (поразрядные) операторы (табл. 2.5).

Таблица 2.5. Битовые (поразрядные) операторы

– Унарное отрицание
& Поразрядное И
| Поразрядное ИЛИ
^ Поразрядное исключающее ИЛИ
<< Сдвиг битов влево
>> Сдвиг битов вправо
>>> Сдвиг битов вправо с заполнением старшего бита нулем
&=, | =, ^=, <<=, >>=, >>>= Присвоение с аналогичной операцией

 

С помощью данных операторов мы работаем над числами в их двоичном представлении. Рассмотрим, например, запись числа 15 в двоичной форме. 00001111

Первый оператор, называемый унарным отрицанием, превращает 0 в 1, а 1 в 0. Оператор поразрядного “и” создает в итоге единицу, если у обоих аналогичных битов сравниваемых чисел тоже 1. Если у них другое сочетание чисел, то итог будет 0. Например:
С = А & В

Предположим, А = 15 (00001111), а В равно 10 (00001010). Число С в таком случае будет равно 10 (00001010). Поразрядное “ИЛИ” означает следующее: если хотя бы один из битов равен 1, то итог тоже 1. Поразрядное исключающее “ИЛИ” возвращает 1, если только один из битов сравниваемых чисел равно 1. Следующие три оператора сдвигают биты влево на указанное число разрядов, причем сдвиг битов влево заполняет пустые позиции нулями. Пример использования этих операторов приведен в табл. 2.6 и листинге 2.10.

 

Таблица 2.6. Операторы сдвигов битов

 

А

В

А/В

А&В

А^В

~A

0

0

0

0

0

1

1

0

1

0

1

0

0

1

1

0

1

1

1

1

1

1

0

0

 

 

Листинг 2.10.
Пример использования операторов сдвигов битов

class Example {
    public static void main (String args[]) {
        int a=3, b=4, c=5;
        int d = a * b;
        System.out.println (d);
        d = a | c;
        System.out.println (d);
        d &= a;
        System.out.println (d);
    }
}

 

В Java также поддерживаются и логические операторы, представленные в табл. 2.7.

 

Таблица 2.7. Логические операторы

= = Равно
!= Не равно
< Меньше
< = Меньше или равно
> Больше
> = Больше или равно
& Логическое и
| Логическое или
^ Логическое исключающее или
! Отрицание
&& Условное и
| | Условное или
&=, |=, ^= Присваивание с аналогичным оператором
Первые шесть операторов называются операторами сравнения. Они позволяют сравнивать числа и возвращают либо значение true, либо — false. Последующие четыре оператора работают с данным типа boolean, но по работе схожи с аналогичными битовыми операторами (только надо заменить бит 0 на false, а бит 1 — на true).

Следующие два оператора используются для двух условий сразу, т.е. указаны два условия и между ними ставится оператор “условное И”. Если они оба будут равны true, то выводится значение true; если хотя бы одно из них будет false, то итог будет false.

Оператор “условное или” будет возвращать значение true, если хотя бы одно из условий будет true. Они обычно используются в конструкции if (об этом мы будем говорить в следующей главе). Пример использования всех этих операторов представлен в листинге 2.11.

Листинг 2.11.
Пример использования логических операторов

class Example {
    public static void main (String args[]) {
        int a = 10, b=15, c=20;
        boolean b1 = a != b;
        boolean b2 = с > a;
        boolean b3 = b1 & b2;
        boolean b4 = b3 ^ b1;
        if (b1 && b4 = = false) // Если b1 != b4, то:
        b3 = true;
        else // Если это не так, то:
        b2 = false;
    }
}

Приведем схему использования логических операторов (табл. 2.8).

Таблица 2.8. Значения логических операторов для двух переменных

A

B

A|B

A&B

A^B

~A

false

false

false

false

false

true

true

false

true

false

true

false

false

true

true

false

true

true

true

true

true

true

false

false

< Предыдущая       Оглавление       Следующая >

Коментарі: 3
  1. ivanov6852
    ivanov6852

    А что означает символ ~ ?

  2. Дима

    Листинг 2,9 выводы будут немного другие.

Додати коментар