Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Java.doc
Скачиваний:
836
Добавлен:
04.06.2015
Размер:
5.55 Mб
Скачать

Примеры записи выражений действительного типа

2.5 + 0.97*b*b

0.2e-4*x – 5.0e-12*y

Примеры вычислений выражений действительного типа:

Math.ceil(Math.log(1.0)) + Math.ceil(Math.exp(0.0))- Math.round(Math.pow(2.0,0)) = 0

Math.floor(Math.pow(Math.pow(1.6,2), Math.pow(2.0,1))) - Math.ceil(Math.pow(1.41,2)) = 4

Math.ceil(Math.sqrt(2.0)) + Math.floor(Math.sqrt('D'-'A')) - (3|4)

= -4

Math.ceil(Math.sqrt(10.0)) - Math.floor(Math.sqrt(3.0)) - 3%5 = 0

Выражения логического типа

В языке Javaиспользуются трилогическиеоперации:

!НЕотрицание, инверсия,

||ИЛИлогическое сложение, дизъюнкция,

&&Илогическое умножение, конъюнкция

и шесть операций сравнения:

== равно,

!= не равно,

>больше,

>= больше или равно,

< меньше,

<= меньше или равно.

Внимание! ОперацияравновJava, как и вСиобозначаетсядвумязнаками равенства:==

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

true– истина,

false– ложь.

Приоритет выполнения операций:

!НЕ

>, >=, <, <=операции сравнения

==, != операции равенства

&&логическоеИ

||логическоеИЛИ

Операторы присваивания

Операторы присваивания служат для вычисления значений выражений и присваивания вычисленных значений переменным.

Оператор присваивания имеет вид:

x = s;

где x – имя переменной,

s – выражение того же типа,

= - знак присваивания.

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

y = y + 5;

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

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

10.5 = x;

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;

Внимание!Если значения переменных не заданы при их описании, то они автоматическине инициализируются!

В этом случае при компиляции программы будет выведено сообщение об ошибке: