Операторы



1.3.3. Операторы



Операторы языка Java имеют различные назначения. Существуют арифметические операторы, операторы инкремента и декремента, логические операторы и операторы отношения.

Арифметические операторы очень просты и аналогичны операторам умножения «*», деления «/», сложения «+» и вычитания «-» используемые в математике. Существует оператор деления по модулю «%» и слегка запутанная на первый взгляд ситуация с оператором равно «=». Оператор равно в языках программирования называется оператором присваивания:

int х = 3

Здесь вы переменной х присваиваете значение 3. А оператор «равно» в языках программирования соответствует записи двух подряд операторов «равно»: <= = >. Рассмотрим на примере, что могут делать различные арифметические операторы.

int х, у, z; ; х = 5; У = 3 ; Z = 0; z = х + у;

В данном случае z будет иметь значение уже суммы х и у, то есть 8.

x = z*x;



Переменная х имела значение 5, но после такой записи предыдущее значение теряется и записывается произведение z *х (8*5), что равно 40. Теперь, если мы продолжим дальше наш код, то переменные будут иметь такой вид:

// х = 40; // У = 3 ; // z = 8;

Это обязательно необходимо иметь в виду.

Что касается оператора деления, то поскольку Java 2 ME не поддерживает дробных чисел, то результат такого деления:

x = z/y;

что равносильно записи:

х = 8/3;

будет равен 2. Дробная часть просто отбрасывается, то же самое происходит при использовании оператор деления по модулю «%».

Операторы сложения и вычитания имеют те же назначения что и в математике. Отрицательные числа так же родственны.

Операторы декремента «—» и инкремента «++» весьма специфичны, но очень просты. В программировании часто встречаются моменты, когда требуется увеличить или уменьшить значение на единицу. Часто это встречается в циклах. Операция инкремента увеличивает переменную на единицу.

int x = 5; х++; // Здесь х уже равен 6

Операция декремента уменьшает переменную на единицу.

int х = 5; х -- ; //х равен 4

Операции инкремента и декремента могут быть пост и префиксными:

int х = 5; int у = 0; y = х++;

8 последней строке кода сначала значение х присваивается у, это значение 5, и только потом переменная х увеличивается на еденицу. Получается что:

х = 6, у = 5

Префиксный инкремент имеет вид:

int х = 3; int у = 0; у = ++х;

И в этом случае, сначала переменная х увеличивается на один, а потом присваивает уже увеличенное значение у.

у = 4, х = 4

Операторы отношения позволяют проверить равенство обеих частей выражения. Имеется оператор равенства «= =», операторы меньше «<» и больше «>», меньше или равно «<=» и больше или равно «>=», а так же оператор отрицания «!=».

9 = = 10;

Это выражение не верно, девять не равно десяти, поэтому его значение этого выражения равно false.

9 != 10;

Здесь же, наоборот, оператор отрицания указывает на неравенство выражения, и значение будет равно true.

Операторы больше, меньше, больше или равно и меньше или равно аналогичны соответствующим операторам из математики.

Существует два логических оператора. Оператор «И», обозначающийся значками «&&» и оператор «ИЛИ», обозначенный в виде двух прямых слешей «||». Например, имеется выражение:

А*В && В*С;

В том случае, если только обе части выражения истинны, значение выражения считается истинным. Если одна из частей неверна, то значение всего выраже- , ния будет ложным.

В противовес оператору «&&» имеется оператор «I I », не напрасно имеющий название «ИЛИ».

А*В|| В*С;

Если любая из частей выражения истинна, то и все выражение считается истинным. Оба оператора можно комбинировать в одном выражении, например:

А*В || B*C && C*D ||В*А;

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

[] , . , () , ! , ~, ++, - -, +(унарный), -(унарный), new, *, /, % , +, -, << , >>, >>>, <, <=, >, >=, = = , !=, &,  ^,  | , &&, || , ?:, = , +=, -=, *=, /=, %=, |=, ^=, <<=, >>=, >>>=.

Не со всеми операторами вы еще знакомы, поэтому пугаться не стоит. Ассоциативность операторов в списке следует слева на право и сверху вниз. То есть все, что находится левее и выше - старше по званию и главнее.

 


Содержание раздела