В этих выражениях используются операнды целого или символьного типов, связанные круглыми скобками и знаками арифметических и побитовых операций.
К арифметическим операциям относятся:
+ сложение 3 + 2 = 5
- вычитания 5 – 2 = 3
* умножение 3 * 2 = 6
/ деление нацело 5 / 3 = 1
% остаток от деления 5 % 3 = 2
5 % 2 = 1
5 % 1 = 0
5 % 5 = 0
2 % 3 = 2
++ инкремент x++ = x + 1
++x = x + 1
-- декремент x-- = x – 1
--x = x – 1
Как и в языке Си, в выражения целого типа языка Java могут входить и операнды символьного типа (char), при этом операции выполняются над кодами символьных констант, а результат может быть выражен или целым числом, или символом:
‘A’ + 3 = ‘D’
‘A’ + 3 = 68
‘a’ – 32 = ‘A’
‘a’ – 32 = 65
‘0’ + 1 = 49
‘0’ + 1 = ‘1’
Если в выражении целого типа встречаются операнды различных типов, то производится автоматическое преобразование типов к одному, самому длинному:
- если хотя бы один из операндов имеет тип long, то и другие преобразуются в операнды типа long, и результат будет иметь тоже тип long,
- во всех остальных случаях операнды преобразуются к типу int.
Побитовые операции выполняются над двоичными кодами операндов, над каждым разрядом кода отдельно. К ним относятся:
&И 5&3 = 1 101 = 5
&
___
|ИЛИ 5|3 = 7 101 = 5
|
___
^ исключающее ИЛИ 5^3 = 6 101 = 5
^
___
Приоритет выполнения операций:
- изменение знака
++ инкремент
-- декремент
Эти операции имеют наивысший приоритет и выполняются в выражениях справа налево.
За ними следуют операции:
*, /, % операции типа умножения
+, - операции типа сложения
& побитовое И
^ исключающее ИЛИ
| побитовое ИЛИ
Эти операции выполняются в выражениях слева направо. Порядок вычислений может быть изменен с помощью круглых скобок.
В выражениях действительного типа используются операнды целого и действительного типов Java, связанные знаками арифметических операций и круглыми скобками.
К арифметическим операциям относятся:
+ сложение 3.2 + 2.5 = 5.7
- вычитания 5.8 – 2.5 = 3.3
* умножение 3.5 * 2.0 = 7.0
/ деление 5.5 / 2.0 = 2.25
% остаток от деления 5.2 % 2.3 = 0.6
2.3 % 5.2 = 2.3
++ инкремент x++ = x + 1.0
++x = x + 1.0
-- декремент x-- = x – 1.0
--x = x – 1.0
Приоритет и порядок выполнения операций в выражениях действительного типа соответствует приоритету и порядку их выполнения в выражениях целого типа. Если в выражении действительного типа встречаются операнды различных типов, то производится автоматическое преобразование типов к одному, самому длинному:
если хотя бы один из операндов имеет тип double, то и другие преобразуются в операнды типа double, и результат будет иметь тоже тип double.