Математические операторы в Java

Разберём арифметические операторы Java, целочисленное деление и остаток, приоритет операций и частую ошибку с делением целых чисел.

Арифметические операторы выполняют математические действия над числами. В Java их пять: сложение, вычитание, умножение, деление и остаток от деления.

Пять операторов

Оператор

Действие

Пример

+

сложение

7 + 3 → 10

-

вычитание

7 - 3 → 4

*

умножение

7 * 3 → 21

/

деление

7 / 3 → 2

%

остаток от деления

7 % 3 → 1

int a = 7, b = 3;
System.out.println(a + b);   // 10
System.out.println(a - b);   // 4
System.out.println(a * b);   // 21
System.out.println(a % b);   // 1 — остаток

Вывод:

10
4
21
1

Ловушка целочисленного деления

Если оба операнда — целые числа, оператор / выполняет целочисленное деление и отбрасывает дробную часть. Это самая частая арифметическая ошибка у новичков.

System.out.println(7 / 2);       // 3, а не 3.5 — оба операнда int
System.out.println(7.0 / 2);     // 3.5 — хотя бы один double
System.out.println(7 / 2.0);     // 3.5

Вывод:

3
3.5
3.5

Чтобы получить дробный результат при делении целых, приведите один из операндов к double: (double) a / b.

Остаток и его применение

Оператор % возвращает остаток от деления. Его часто используют, чтобы проверить чётность числа или «зациклить» индекс.

int n = 14;
if (n % 2 == 0) {
    System.out.println("Чётное");
} else {
    System.out.println("Нечётное");
}

Вывод:

Чётное

Приоритет операций

Как и в математике, *, / и % выполняются раньше + и -. Порядок можно изменить скобками.

System.out.println(2 + 3 * 4);     // 14: сначала 3*4, потом +2
System.out.println((2 + 3) * 4);   // 20: скобки меняют порядок

Вывод:

14
20

Коротко

  • Пять операторов: + - * / и % (остаток).
  • / над двумя int отбрасывает дробь — приведите операнд к double.
  • % удобен для проверки чётности и зацикливания индексов.
  • * / % приоритетнее + -; порядок меняют скобки.
Проверьте себя
1. Чему равно 7 / 2 в Java?
A3.5
B3
C4
DОшибка
2. Как получить дробный результат при делении двух целых a и b?
Aa / b
B(double) a / b
Ca // b
Ddouble(a / b)
3. Что вычисляет оператор %?
AПроцент от числа
BОстаток от деления
CВозведение в степень
DЦелую часть
4. Чему равно 2 + 3 * 4?
A20
B14
C24
D9