Операторы Java

В этой статье вы узнаете о различных типах операторов Java и их синтаксисе.

Операторы это специальные символы, которые осуществляют операции над операндами (переменными и значениями). Например, «+» это оператор, который производит сложение.

Сейчас вы узнаете, как использовать операторы, чтобы манипулировать переменными.

Операторы присваивания

Используются в Java, чтобы присвоить значения переменным. Например,

int age;//возраст
age = 5;

Оператор «=» присваивает значение справа от себя переменной, находящейся слева. В примере переменной age присвоено значение 5.

Пример 1: оператор присваивания

class AssignmentOperator {
    public static void main(String[] args) {
        
        int number1, number2;
        
        // Присвоение переменной number1 значения 5
        number1 = 5;
        System.out.println(number1);
                
        // Присвоение переменной number2 значения number1
        number2 = number1;
        System.out.println(number2);
    }
}

Когда вы запустите программу, на экран выведется:

5
5

Арифметические операторы

Арифметические операторы Java используются, чтобы производить математические операции сложения, вычитания умножения и так далее.

Арифметические операторы Java
Оператор Значение
+ Сложение (также используется для конкатенации строк)
Вычитание
* Умножение
/ Деление
% Остаток от деления

Пример 2: Арифметические операторы

class ArithmeticOperator {
    public static void main(String[] args) {

        double number1 = 12.5, number2 = 3.5, result;

        // Используется оператор сложения 
        result = number1 + number2;
        System.out.println("number1 + number2 = " + result);

        // Используется оператор вычитания 
        result = number1 - number2;
        System.out.println("number1 - number2 = " + result);

        // Используется оператор умножения
        result = number1 * number2;
        System.out.println("number1 * number2 = " + result);

        // Используется оператор деления
        result = number1 / number2;
        System.out.println("number1 / number2 = " + result);

        // Используется оператор остатка
        result = number1 % number2;
        System.out.println("number1 % number2 = " + result);
    }
}

Когда вы запустите программу, на экран выведется:

number1 + number2 = 16.0
number1 - number2 = 9.0
number1 * number2 = 43.75
number1 / number2 = 3.5714285714285716
number1 % number2 = 2.0

В примере с оператором деления Java, приведенном выше, использованные операнды – переменные. Кроме этого могут использоваться символьные значения. Например:

result = number1 + 5.2;
result = 2.3 + 4.5;
number2 = number1 -2.9;

Оператор «+» также может быть использован, чтобы соединить (конкатенировать) две строки или больше.

Пример 3: Арифметический оператор

class ArithmeticOperator {
    public static void main(String[] args) {

        String start, middle, end, result;

        start = "Разговоры ничего не стоят. ";
        middle = "Покажите мне код. ";
        end = "- Линус Торвальдс";

        result = start + middle + end;
        System.out.println(result);
    }
}

Когда вы запустите программу, на экран выведется:

Разговоры ничего не стоят. Покажите мне код. - Линус Торвальдс

Унарные операторы

Унарный оператор Java производит операцию только над одним операндом.

Оператор Значение
+ Унарный плюс (не нужен, так как числа положительные и без него).
Унарный минус; инвертирует знак выражения.
++ Оператор инкремента; увеличивает значение на 1.
Оператор декремента; уменьшает значение на 1.
!  Оператор логического отрицания; инвертирует значение булевой переменной.

Пример 4: Унарный оператор

class UnaryOperator {
    public static void main(String[] args) {

        double number = 5.2, resultNumber;
        boolean flag = false;

        System.out.println("+number = " + +number);
        // number равен здесь 5.2.

        System.out.println("-number = " + -number);
        // number равен здесь 5.2

        // ++number is Эквивалент number = number + 1
        System.out.println("number = " + ++number);
        // number равен здесь 6.2

        // -- number is Эквивалент number = number - 1
        System.out.println("number = " + --number);
        // number равен здесь 5.2

        System.out.println("!flag = " + !flag);
        // Флаг все еще ложный.
    }
}

Когда вы запустите программу, на экран выведется:

+number = 5.2
-number = -5.2
number = 6.2
number = 5.2
!flag = true

В Java можно использовать операторы «++» и «» в качестве префикса и постфикса. Оператор «++» увеличивает значение на 1, а «» уменьшает значение на 1.

int myInt = 5;
++myInt   // myInt принимает значение 6
myInt++   // myInt принимает значение 7
--myInt   // myInt принимает значение 6
myInt--   // myInt принимает значение 5

Есть большая разница в использовании операторов Java инкремента и декремента в префиксе и в постфиксе. Рассмотрим пример:

Пример 5: Унарный оператор

class UnaryOperator {
    public static void main(String[] args) {

        double number = 5.2;

        System.out.println(number++);
        System.out.println(number);

        System.out.println(++number);
        System.out.println(number);
    }
}

Когда вы запустите программу, на экран выведется:

5.2
6.2
7.2
7.2

Когда выполняется выражение System.out.println(number++), первым вычисляется изначальное значение. Переменная number увеличивается только после этого. Поэтому вы получите на выходе 5.2. Далее, когда выполняется System.out.println(number), показывается значение 6.2.

Тем не менее, когда выполняется System.out.println(++number), number увеличивается на 1 перед тем, как будет выведено на экран. Так же обстоят дела и с оператором Java декремента.

Операторы равенства и отношений

Операторы равенства и отношений проверяют, является ли операнд больше, меньше, равен, неравен второму и так далее. Получаемый результат равен true или false.

Операторы равенства и отношений в Java
Оператор Описание Пример
== равен 5 == 3 результат false
!= неравен 5 != 3 результат true
Больше 5 > 3 результат true
меньше 5 < 3 результат false
>= Больше или равен 5 >= 5 результат true
<= Меньше или равен 5 <= 5 результат true

Рассмотрим этот простой пример.

Пример 6: Операторы равенства и отношений

class RelationalOperator {
    public static void main(String[] args) {

        int number1 = 5, number2 = 6;

        if (number1 > number2)
        {
                System.out.println("number1 больше, чем number2.");
        }
        else
        {
                System.out.println("number2 больше, чем number1.");
        }
    }
}

Когда вы запустите программу с операторами сравнения Java, на экран выведется:

number2 больше, чем number1.

Здесь мы использовали оператор «>», чтобы проверить, больше ли number1, чем number2.

Так как number2 больше, чем number1, результатом выражения number1 > number2 будет false.

Кроме операторов отношений, есть оператор сравнения типов instanceof, который сравнивает объект и определенный тип.

Например:

Оператор instanceof

Пример оператора instanceof.

class instanceofOperator {
    public static void main(String[] args) {

        String test = "asdf";
        boolean result;

        result = test instanceof String;
        System.out.println(result);
    }
}

Когда вы запустите программу, на экран выведется true. Это происходит от того, что test — экземпляр класса String.

Логические операторы

Java логические операторы || (условное-ИЛИ (OR) ) и && (условное-И (AND)) совершают операции над булевыми выражениями. Вот как они работают.

Логические операторы Java
Оператор Описание Пример
|| условное-ИЛИ; true если хотя бы одно из булевых выражений истинно (true) false || true результат — true
&& условное-И; истинно если все булевы выражения истинны (true). false && true результат — false

Пример 8: Логические операторы

class LogicOperator {
    public static void main(String[] args) {

        int number1 = 1, number2 = 2, number3 = 9;
        boolean result;

        // Хотя бы одно из выражений должно быть истинным, чтобы результат был истиной
        result = (number1 > number2) || (number3 > number1);
        // результат — истина, так как (number1 > number2) истинно
        System.out.println(result);

// Все выражения должны быть истинными, чтобы результат был true
        result = (number1 > number2) && (number3 > number1);
        // Результат будет ложным(false), так как (number3 > number1) ложно
        System.out.println(result);
    }
}

Когда вы запустите программу, на экран выведется:

true
false

Тернарный оператор

Условный оператор или тернарный оператор Java «?:» — это сокращение выражения if-then-else. Синтаксис условного оператора:

переменная = выражение ? выражение1 : выражение2

Вот как это работает.

  • Если значение выражения — true, expression1 присваивается переменной;
  • Если значение выражения — false, expression2 присваивается переменной.

Пример 9: Тернарный оператор

class ConditionalOperator {
    public static void main(String[] args) {

        int februaryDays = 29;//дней в феврале
        String result;

        result =  (februaryDays == 28) ? "Не високосный год" : "Високосный год";
        System.out.println(result);
    }
}

Когда вы запустите тернарного оператора Java пример, на экран выведется:

Високосный год

Побитовые операторы и смещение битов

Чтобы осуществлять побитовые операции, в Java используются такие операторы.

Побитовые операторы и смещение битов в Java
Оператор Описание
~ Побитовое дополнение.
<<  Левый сдвиг.
>>  Правый сдвиг.
>>>  Беззнаковый правый сдвиг.
& Побитовое И.
^ Побитовое исключающее ИЛИ.
| Побитовое включающее ИЛИ.

Эти операторы применяются нечасто.

Другие операторы присваивания

В начале статьи мы рассмотрели только один оператор присваивания =. Существует еще несколько операторов Java присваивания.

Операторы присваивания в Java
Оператор Пример Эквивалент
+= x += 5 x = x + 5
-= x -= 5 x = x – 5
*= x *= 5 x = x * 5
/= x /= 5 x = x / 5
%= x %= 5 x = x / 5
<<= x <<= 5 x = x << 5
>>= x >>= 5 x = x >> 5
&= x &= 5 x = x & 5
^= x ^= 5 x = x ^ 5
|= x |= 5 x = x | 5

Перевод статьи “Java Operators” был подготовлен дружной командой проекта Сайтостроение от А до Я.