Операторы в Java - шпаргалка с примерами
В этой статье вы узнаете о различных типах операторов Java и их синтаксисе.
Операторы это специальные символы, которые осуществляют операции над операндами (переменными и значениями). Например, «+» это оператор, который производит сложение.
Сейчас вы узнаете, как использовать операторы, чтобы манипулировать переменными.
- Операторы присваивания
- Пример 1: оператор присваивания
- Арифметические операторы
- Пример 2: Арифметические операторы
- Пример 3: Арифметический оператор
- Унарные операторы
- Пример 4: Унарный оператор
- Пример 5: Унарный оператор
- Операторы равенства и отношений
- Пример 6: Операторы равенства и отношений
- Оператор instanceof
- Логические операторы Java
- Пример 8: Логические операторы Java
- Тернарный оператор
- Пример 9: Тернарный оператор
- Побитовые операторы 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 используются, чтобы производить математические операции сложения, вычитания умножения и так далее.
Оператор | Значение |
---|---|
+ | Сложение (также используется для конкатенации строк) |
- | Вычитание |
* | Умножение |
/ | Деление |
% | Остаток от деления |
Пример 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.
Оператор | Описание | Пример |
== | равен | 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)) совершают операции над булевыми выражениями. Вот как они работают.
Оператор | Описание | Пример |
|| | условное-ИЛИ; 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 присваивания.
Оператор | Пример | Эквивалент |
+= | 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 |