Операторы
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, *, /, % , +, -, << , >>, >>>, <, <=, >, >=, = = , !=, &, ^, | , &&, || , ?:, = , +=, -=, *=, /=, %=, |=, ^=, <<=, >>=, >>>=.
Не со всеми операторами вы еще знакомы, поэтому пугаться не стоит. Ассоциативность операторов в списке следует слева на право и сверху вниз. То есть все, что находится левее и выше - старше по званию и главнее.
Содержание раздела