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

Java поддерживает следующие арифметические операции:

Оператор

Операция

Сложение

Вычитание

*

Умножение

/

Деление

%

Остаток от целочисленного деления

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

a + b / c ≡ a + ( b / c )

a * b – c ≡ ( a * b ) – c

a / b / c ≡ ( a / b ) / c

Рекомендуется всегда явно задавать порядок выполнения операций с помощью скобок - в этом случае Вам не придется думать о том, приоритет какой операции выше.

Стоит уделить особое внимание целочисленному делению.

Результат деления в Java зависит от типов операндов. Если оба операнда - целые числа, то результат будет тоже целым. Поэтому непреднамеренное использование целочисленного деления может привести к существенной потере точности. Чтобы произвести обычное деление, получив в качестве результата вещественное значение, в Java нужно явно указать, что хотя бы один из операндов является вещественным числом.

Например:

3 / 2 ≡ 1

2 / 3 ≡ 0

потому что это целочисленное деление. Однако

3 / 2. ≡ 1.5

2.0 / 3 ≡ 0.66666666…

потому что 2. и 2.0 являются вещественными числами. Если k и n являются переменными типа int, то k/n будет производить целочисленное деление и выдавать в качестве результата целое число (значение типа int). Чтобы получить вещественный результат при делении двух целочисленных переменных (или выражений), Вы должны заставить Java рассматривать хотя бы с одну переменную как вещественную. Это делается с помощью приведения типов: для этого Вам нужно перед именем переменной написать в скобках имя типа, к которому Вы хотите преобразовать значение, например, (double)k/n даст вещественный результат деления (значение типа double).

Целочисленное деление часто используется вместе с операцией взятия остатка от деления для получения номера строки и столбца элемента по его порядковому номеру. Предположим, что есть коллекция из 600 элементов, задающая, скажем, места в театре, и мы хотим условно расположить эти места в 20 рядов, каждый из которых содержит по 30 мест. В этом случае получить номер ряда и номер места в этом ряду можно будет с помощью следующих выражений:

Номер места: index % 30 (остаток от деления индекса на 30: 0 - 29)

Номер ряда: index / 30 (целочисленное деление индекса на 30: 0 - 19)

где порядковый номер (индекс) index принимает значения от 0 до 599. Например, место с индексом 247 будет соответствовать месту 7 в ряду 8. 

У операции возведения в степень в Java нет собственного оператора (если Вы напишете a^b, то это будет означать операцию побитового ИЛИ). Чтобы выполнить возведение в степень, нужно вызвать функцию pow():

pow( a, b ) ≡ ab

Java поддерживает несколько упрощенных операторов для часто используемых операций с численными переменными:

i++  ≡  i = i+1 (увеличение значения i на 1)

i––  ≡  i = i–1 (уменьшение значения i на 1)

a += 100.0  ≡  a = a + 100.0 (увеличение значения a на 100.0)

b –= 14  ≡  b = b – 14 (уменьшение значения b на 14)

Обратите внимание, что хотя такие операторы могут использоваться в выраженях, их вычисление изменяет значение операндов.