В языке Java используются три логические операции:
!НЕ отрицание, инверсия,
||ИЛИ логическое сложение, дизъюнкция,
&&И логическое умножение, конъюнкция
и шесть операций сравнения:
==равно,
!= не равно,
> больше,
>= больше или равно,
< меньше,
<= меньше или равно.
Внимание! Операция равно в Java, как и в Си обозначается двумя знаками равенства: ==
Результатами логических операций и операций сравнения могут быть две константы:
true – истина,
false – ложь.
Приоритет выполнения операций:
!НЕ
>, >=, <, <= операции сравнения
==, != операции равенства
&& логическое И
|| логическое ИЛИ
Операторы присваивания служат для вычисления значений выражений и присваивания вычисленных значений переменным.
Оператор присваивания имеет вид:
где x – имя переменной,
s – выражение того же типа,
= - знак присваивания.
Оператор присваивания дает команду компьютеру на вычисление значения выражения справа от знака присваивания и запись вычисленного значения в ячейку памяти, отведенную для хранения переменной, стоящей слева от знака присваивания. При этом прежнее значение переменной аннулируется. Поэтому в программировании можно использовать, например, такие операторы присваивания:
y = y + 5;
Выполняя его, компьютер возьмет старое значение переменной y и увеличит его на 5, после чего полученное новое значение этой переменной снова запишет в отведенную для нее ячейку памяти.
Начинающий программист может сделать ошибку, записав слева от знака присваивания не имя переменной, а константу или выражение:
a + b = y + 5.2;
Присваивание в Java может быть организовано несколькими способами:
как оператор присваивания:
a = 5;
как оператор-выражение:
a++;
как операция, встречающаяся в выражении несколько раз, при этом операции присваивания выполняются справа налево:
a = b = c = 5;
как операция, если стоит внутри других операций:
a = (b = 1) + 4;
Сначала переменной b будет присвоено значение 1, а затем к результату, полученному в скобках, будет прибавлено 4. Таким образом, одним оператором присваивания будут присвоены значения сразу двум переменным:
b = 1, a = 5
Операции присваивания, изменяющие старые значения переменных, реализуются в Javaобъединенными арифметическими или побитовыми операциями присваивания:
a = a + 5; a+=5;
a = a – 3; a-=3;
a = a * 4; a*=4;
a = a / 6; a/=6;
a = a % 2; a%=2;
a = a + b / c; a+=b/c;
a = a & 3; a&=3;
a = a | 2; a|=2;
a = a * b / c; a*=b/c;
a = a * (b + c); a*=b + c;
Эти операции, как и сама операция присваивания, имеют самый низкий приоритет и выполняются в выражениях последнимисправа налево, поэтому, например, замена
a = a / b *c; на a/=b * c;
будет неверна – получаются различные выражения.
В операторах присваивания могут использоваться операции инкремента++и декремента--. Знаки инкремента и декремента могут стоять в выражениях как перед переменной (префиксная запись), так и после нее (постфиксная запись). При этом выражения будут вычисляться по-разному:
- при префиксной записи (знак перед переменной) сначала изменяется значение этой переменной, а затем выполняются другие операции, и последней – операция присваивания:
a = 4;
b = ++a; // a=5, b=5
c = ++b/2; // b=6, c=3
d = ++a/2; // a=6, d=3
- при постфиксной записи (знак после переменной) сначала вычисляется значение выражения со старыми значениями переменных, выполняется операция присваивания, после чего выполняются операции инкремента или декремента:
a = 4;
b = a++; // b=4, a=5
c = b++/2; // c=2, b=5
d = a++/2; // d=2, a=6
В Java приветствуется присваивание начальных значений переменным при их описании – инициализация переменных:
int i=5;
float x=3.1415;
char c=’A’;
Инициализировать переменные можно и выражениями, операндами которых являются константы:
int k=117*16;
float x= 3.1415*2.0e-3;
Внимание! Если значения переменных не заданы при их описании, то они автоматически не инициализируются!
В этом случае при компиляции программы будет выведено сообщение об ошибке: