Арифметические операции
К арифметическим операциям относятся:
сложение
+
(плюс);
вычитание
-
(дефис);
умножение
*
(звездочка);
деление
/
(наклонная черта — слэш);
взятие остатка от деления (деление по модулю)
%
(процент);
инкремент (увеличение на единицу)
++
;
декремент (уменьшение на единицу)
--
Между сдвоенными плюсами и минусами нельзя оставлять пробелы. Сложение, вычитание и умножение целых значений выполняются как обычно, а вот деление целых значений в результате дает опять целое (так называемое
"целое деление"),
например,
5/2
даст в результате
2
, а не
2.5
, а
5/(-3)
даст
-1
. Дробная часть попросту отбрасывается, происходит усечение частного. Это поначалу обескураживает, но потом оказывается удобным для усечения чисел.
Замечание
В Java принято целочисленное деление.
Это странное для математики правило естественно для программирования: если оба операнда имеют один и тот же тип, то и результат имеет тот же тип. Достаточно написать
5/2.0
или
5.0/2
или
5.0/2.0
и получим
2.5
как результат деления вещественных чисел.
Операция
деление по модулю
определяется так:
а % b = а - (а / b) * b
; например,
5%2
даст в результате
1
, а
5% (-3)
даст,
2
, т.к.
5 = (-3) * (-1) + 2
, но
(-5)%3
даст
-2
, поскольку
-5 = 3 * (-1) - 2
.
Операции
инкремент
и
декремент
означают увеличение или уменьшение значения переменной на единицу и применяются только к переменным, но не к константам или выражениям, нельзя написать
5++
или
(а + b)++
.
Например, после приведенных выше описаний
i++
даст
-99
, a
j—-
даст
99
.
Интересно, что эти операции 'можно записать?и перед переменной:
++i
,
— j
. Разница проявится только в выражениях: при первой формe записи
(постфиксной)
в выражении участвует старое значение переменной и только потом происходит увеличение или уменьшение ее значения. При второй форме записи
(префиксной)
сначала изменится переменная и ее новое значение будет участвовать в выражении.
Например, после приведенных выше описаний,
(k++) + 5
даст в результате
10004
, а переменная
k
примет значение
10000
. Но в той же исходной ситуации
(++k) + 5
даст
10005
, а переменная
k
станет равной
10000
.