
Арифметичні операції
Почнемо з найпростішого – з арифметичних операцій. Це відомі всім додавання (знак +), віднімання (-), множення (*) і ділення (/).
public class Main {
public static void main(String[] args) {
int x = 999;
int y = 33;
System.out.println(x+y);
System.out.println(x-y);
System.out.println(x*y);
System.out.println(x/y);
}
}
Виведення в консоль:
%
– залишок від ділення.
public class Main {
public static void main(String[] args) {
int x = 33;
int y = 33%2;
System.out.println(y);
}
}
Виведення в консоль:
- дорівнює (
==
) - більше (
>
) - менше (
<
) - більше або дорівнює (
>=
) - менше або дорівнює (
<=
) - не дорівнює (
!=
)
==
, а не одним знаком =
.
Одиничний знак =
в Java є оператором присвоєння, коли змінній присвоюється число, рядок, або значення іншої змінної.

public class Main {
public static void main(String[] args) {
int x = 33;
int y = 999;
System.out.println(x=y);//очікуємо, що в консоль буде виведено false
}
}
Виведення в консоль:
boolean
, а отримали число. Усе тому, що в дужках у нас операція присвоєння, а не порівняння.
x=y
Значення y
(999) було присвоєно змінній x
, і після цього ми вивели x
в консоль.
Правильний варіант:
public class Main {
public static void main(String[] args) {
int x = 33;
int y = 999;
System.out.println(x==y);
}
}
Виведення в консоль:
=
) – її можна здійснювати "по ланцюжку":
public class Main {
public static void main(String[] args) {
int x = 999;
int y = 33;
int z = 256;
x = y = z;
System.out.println(x);
}
}
Виведення в консоль:
x = y = z
) буде виконаний покроково:- y = z , тобто у = 256
- x = y, тобто x = 256
Унарні операції
Вони називаються "унарними" від слова "uno" – "один". Таку назву вони отримали тому, що на відміну від попередніх, здійснюються над одним числом, а не над кількома. До них належать:Унарний мінус. Він змінює знак числа на протилежний.
public class Main { public static void main(String[] args) { int x = 999; // змінюємо знак вперше x = -x; System.out.println(x); // змінюємо знак вдруге x= -x; System.out.println(x); } }
Виведення в консоль:
-999 999Ми використовували унарний мінус двічі. Внаслідок цього наше число стало спочатку від'ємним, а потім знову позитивним!
Інкремент (
++
) і декремент (--
)Операція
++
збільшує число на одиницю, а операція--
зменшує на цю ж саму одиницю.public class Main { public static void main(String[] args) { int x = 999; x++; System.out.println(x); x--; System.out.println(x); } }
Виведення в консоль:
1000 999
x++
– постфіксний запис
++x
– префіксний запис
У чому ж полягає принципова різниця, якщо ставити плюси-мінуси перед числом чи після?
Побачимо на прикладі:
public class Main {
public static void main(String[] args) {
int x = 999;
int y = x++;
System.out.println(y);
}
}
Виведення в консоль:
x
на 1 і присвоїти нове значення змінній y
. Тобто y має дорівнювати 1000. Але маємо інший результат – 999. Виходить, x
не був збільшений, і операція інкременту не спрацювала?
Ще й як спрацювала. Щоб у цьому переконатися, спробуй вивести x в консоль наприкінці :)
public class Main {
public static void main(String[] args) {
int x = 999;
int y = x++;
System.out.println(y);
System.out.println(x);
}
}
Виведення в консоль:
int y = x++;
спочатку виконується y = x
(і змінній y буде присвоєно початкове значення x
), а тільки потім x++
.
Як бути, якщо нас не влаштовує така поведінка? Потрібно використовувати префіксний спосіб запису:
public class Main {
public static void main(String[] args) {
int x = 999;
int y = ++x;
System.out.println(y);
}
}
У цьому випадку спочатку відпрацює ++x
і тільки після цього y = x;
. Цю різницю варто запам'ятати одразу, щоб не припуститися помилок у реальній програмі, в якій уся поведінка може через це перевернутися з ніг на голову :)

Комбіновані операції
Крім того, в Java існують так звані комбіновані операції. В їхніх межах використовується комбінація з двох операцій:- Присвоювання
- Арифметична операція
+=
-=
*=
/=
%=
public class Main {
public static void main(String[] args) {
int x = 999;
int y = 33;
x += y;
System.out.println(x);
}
}
Виведення в консоль:
x += y
означає x = x + y
. Просто для стислості запису використовується два знаки поспіль. Так само це працює з комбінаціями -=
, *=
, /=
і %=
.
Логічні операції
Крім операцій над числами, в Java існують також операції над булевими змінними –true
і false
. Ці операції виконуються за допомогою логічних операторів:!
– оператор "НЕ". Змінює значення булевої змінної на протилежнеpublic class Main { public static void main(String[] args) { boolean x = true; System.out.println(!x); } }
Виведення в консоль:
false&&
– оператор "І". Повертає значенняtrue
тільки в тому разі, якщо обидва операнди єtrue
.public class Main { public static void main(String[] args) { System.out.println(100 > 10 && 100 > 200); System.out.println(100 > 50 && 100 >= 100); } }
Виведення в консоль:
false
trueРезультатом першої операції є
false
, оскільки одна з умов є хибною, а саме 100 > 200. Оператору&&
для того, щоб повернутиtrue
, потрібно, щоб істинними були всі умови (як у другому рядку, наприклад).||
– оператор "АБО". Повертаєtrue
, коли хоча б один з операндів істинний.Тут наш попередній приклад уже відпрацює по-іншому:
public class Main { public static void main(String[] args) { System.out.println(100 > 10 || 100 > 200); } }
Виведення в консоль:
trueВираз 100 > 200, як і раніше, хибний, але оператору "або" цілком достатньо, що перша частина (100 > 10) є істинною.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ