Операторы языка Java, как впрочем, и других языков программирования имеют свои назначения. Так существуют арифметические операторы, операторы инкремента и декремента, логические операторы и операторы отношения. Давайте рассмотри каждый из вышеупомянутых операторов.
Арифметические операторы
Все арифметические операторы очень просты и аналогичны операторам умножения «*», деления «/», сложения «+» и вычитания «–» используемые в математике. Существует оператор деления по модулю «%» и слегка запутанная на первый взгляд ситуация с оператором равно «=». Оператор равно в языках программирования называется оператором присваивания:
int x = 3
Здесь вы переменной х присваиваете значение 3. А оператор «равно» в языках программирования соответствует записи двух подряд операторов «равно»: «==». Рассмотрим на примере, что могут делать различные арифметические операторы.
int x, y, z; x = 5; y = 3; z = 0; z = x + y;
В данном случае z будет иметь значение уже суммы x и y, то есть 8.
x = z*x;
Переменная х имела значение 5, но после такой записи предыдущее значение теряется и записывается произведение z*x (8*5), что равно 40. Теперь, если мы продолжим дальше наш код, то переменные будут иметь такой вид:
// x = 40; // y = 3; // z = 8;
Операторы сложения и вычитания имеют те же назначения что и в математике. Отрицательные числа так же родственны.
Операторы декремента «––» и инкремента «++» весьма специфичны, но очень просты. В программировании часто встречаются моменты, когда требуется увеличить или уменьшить значение на единицу. Часто это встречается в циклах. Операция инкремента увеличивает переменную на единицу.
int x = 5; x++; // Здесь х уже равен 6
Операция декремента уменьшает переменную на единицу.
int x = 5; x--; // х равен 4
Операции инкремента и декремента могут быть пост и префиксными:
int x = 5; int y = 0; y = x++;
В последней строке кода сначала значение x присваивается y, это значение 5, и только потом переменная х увеличивается на единицу. Получается что:
x = 6, y = 5
Префиксный инкремент имеет вид:
int x = 3; int y = 0; y = ++x;
И в этом случае, сначала переменная х увеличивается на один, а потом присваивает уже увеличенное значение y.
y = 4, x = 4
Операторы отношения
Операторы отношения позволяют проверить равенство обеих частей выражения. Имеется оператор равенства «==», операторы меньше «», меньше или равно «=», а так же оператор отрицания «!=».
9 == 10;
Это выражение не верно, девять не равно десяти, поэтому его значение этого выражения равно false.
9 != 10;
Здесь же, наоборот, оператор отрицания указывает на неравенство выражения, и значение будет равно true.
Операторы больше, меньше, больше или равно и меньше или равно аналогичны соответствующим операторам из математики.
Логические операторы
Существует два логических оператора. Оператор «И», обозначающийся значками «&&» и оператор «ИЛИ», обозначенный в виде двух прямых слэшей «||». Например, имеется выражение:
А*В && В*С;
В том случае, если только обе части выражения истинны, значение выражения считается истинным. Если одна из частей неверна, то значение всего выражения будет ложным.
В противовес оператору «&&» имеется оператор «||», не напрасно имеющий название «ИЛИ».
А*В || В*С;
Если любая из частей выражения истинна, то и все выражение считается истинным. Оба оператора можно комбинировать в одном выражении, например:
A*B || B*C && C*D || B*A;
С помощью этого выражения я вас ввел, как мне кажется, в затруднение, неправда ли? Дело в том, что в Java, как и в математике существует приоритет или так называемая иерархия операторов, с помощью которой определяется какой из операторов главнее, а, следовательно, и проверяется первым. Рассмотрим с помощью списка приоритет всех имеющихся операторов языка Java:
[], ., (),
!, ~, ++, – –, + (унарный), – (унарный), new,
*, /, %,
+, –,
<>, >>>,
, >=,
= =, !=,
&, ^, |,
&&,
||,
?:,
=, +=, –=, *=, /=, %=, |=, ^=, <>=, >>>=.
Ассоциативность операторов в списке следует слева направо и сверху вниз. То есть все, что находится левее и выше – старше по званию и главнее.
Содержание
Основы языка программирования Java. Часть I
Синтаксис и семантика языка Java. Часть II
Операторы языка Java. Часть III
Метод main в языках Java и Java 2 ME. Часть IV
Объекты классов в Java и Java 2 ME. Часть V
Условные и управляющие операторы Java. Часть VI
Циклы языка программирования Java. Часть VII
Массивы данных в Java и Java 2 ME. Часть VIII
Наследование в языке программирования Java. Часть IХ
Интерфейсы в Java и Java 2 ME. Часть Х
Пакеты в Java и Java 2 ME. Часть ХI