Операторы
В языке 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-тым разрядом второго.
Дата добавления: 2015-02-13; просмотров: 940;