Программирование мобильных телефонов на Java



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,
*, /, % ,
+, -,
<< , >>, >>>,
<, <=, >, >=, = = , !=,
&,  ^,  | , &&, || , ?:,
= , +=, -=, *=, /=, %=, |=, ^=, <<=, >>=, >>>=.


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

Назад Начало Вперед