|
Арифметические
операции
К арифметическим операциям относятся:
-
сложение
+
(плюс);
-
вычитание
-
(дефис);
-
умножение
*
(звездочка);
-
деление
/
(наклонная черта — слэш);
-
взятие остатка от деления (деление
по модулю)
%
(процент);
-
инкремент (увеличение на единицу)
++
;
-
декремент (уменьшение на единицу)
--
Между сдвоенными плюсами и минусами
нельзя оставлять пробелы. Сложение, вычитание и умножение целых значений выполняются
как обычно, а вот деление целых значений в результате дает опять целое (так
называемое
"целое деление"),
например,
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
.
|