Операторы

В языке Java существует достаточно широкий набор операторов, которые приведены в таблице в порядке понижения приоритета.

Операторы Приоритет
постфиксные expr++ expr--
унарные ++expr --expr +expr -expr ~!
мультипликативные * / %
аддитивные + -
сдвига << >> >>>
отношения < > <= >= instanceof
равенства ==!=
побитовое И &
побитовое ИЛИ ^
побитовое исключающее ИЛИ |
логическое И &&
логическое ИЛИ ||
тернарный ?:
присваивания = += -= *= /= %= &= ^= |= <<= >>= >>>=

Для обозначения операций сложения, вычитания, умножения и деления в языке Java используются обычные арифметические операторы “+”, “-“, “*”, “/”. Оператор “/” означает целочисленное деление, если оба аргумента являются целыми числами. В противном случае этот оператор обозначает деление чисел с плавающей точкой. Остаток от деления целых чисел (т.е. функция mod) обозначается символом “%”.

В операторах присваивания удобно использовать сокращенные бинарные арифметические операторы. Например, оператор x+=4 эквивалентен оператору x=x+4. Сокращенные операторы присваивания образуются путем приписывания символа арифметической операции, например, “*” или “%”, перед символом “=”, например, “*=”, “%=”.

В языке Java есть операторы инкрементации и декрементации: оператор x ++ добавляет единицу к текущему значению переменной x, а оператор x -- вычитает из него единицу.

int n=12; n++; // делает значение переменной n равной 13

Существует два вида этих операторов. Выше показана постфиксная форма, в которой символы операции размещаются после операнда. Есть и префиксная форма – ++n. Оба этих оператора увеличивают значение на единицу.

int m=7; int n=7; int a=2* ++m; // теперь значение a равно 16, а m – 8 int b=2* n++; // теперь значение b равно 16, n – 8

Язык Java содержит полный комплект операторов отношения. Чтобы проверить равенство, следует использовать символы “==”. Например, значение выражения 3==7 равно false. Для проверки неравенства используются символы “!=”. Так, значение выражения 3!=7 равно true.

Кроме того, в языке Java есть обычные операторы “<” (меньше), “>” (больше), “<=” (меньше или равно), “=>” (больше или равно).

Язык Java использует символы “&&” для обозначения логического оператора “и”, а также символы “||” для обозначения логического оператора “или”. Как обычно, знак восклицания означает логический оператор отрицания. Операторы “&&” и “||” вычисляются по сокращенной схеме, т.е. если в ходе выполнения выражения A&&B выясняется, что подвыражение A ложно, то подвыражение B не вычисляется.

int x=1; (x>0) | calculate(x) // в таком выражении произойдет вызов calculate (x>0) || calculate(x) // а в этом - нет

В языке Java есть также тернарный оператор?:, который иногда оказывается полезным. Выражение

Условие? e1: e2

означает, что если Условие истинно, то вычисляется выражение e1, а если ложно – e2.

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

& (“и”), | (“или”), ^ (“исключающее или”), ~ (“не”)

В языке Java есть также операторы “<<” и “>>”, сдвигающие битовое представление числа вправо или влево.

Класс Math содержит набор математических функций. Чтобы извлечь квадратный корень из числа, применяют метод sqrt.

double x = 4; double y = Math.sqrt(x); System.out.println(y); // Печатает число 2.0

В языке Java нет оператора возведения в степень, для этого нужно использовать метод pow из класса Math. Оператор

double y = Math.pow(x,a)

присваивает переменной y значение переменной x, возведенной в степень a. Оба параметра и возвращаемое значение имеют тип double.

Класс Math содержит обычные тригонометрические функции: Math.sin, Math.cos, Math.tan, Math.atan, Math.atan2. Кроме этого, в него включены экспоненциальная и обратная к ней логарифмическая функции: Math.exp, Math.log. Генератор псевдослучайных чисел в диапазоне от 0 до 1 вызывается с помощью функции Math.random(). В классе определены так же константы Math.PI, Math.E.

Побитовые операции – когда целые числа рассматриваются как наборы бит, где 0 и 1 играют роли логического нуля и логической единицы. При этом все логические операции для двух чисел осуществляются поразрядно – k-тый разряд первого числа с k-тым разрядом второго.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: