Операторы в 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

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

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

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

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

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

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

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

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

КККонстантин Кондрусинавтор статьи «Java Operators»

Пожалуйста, опубликуйте свои мнения по текущей теме материала. Мы крайне благодарны вам за ваши комментарии, дизлайки, отклики, лайки, подписки!