2.6 Операторы
Java имеет богатый набор операторов. Этот набор может быть разделен на следующие подмножества:
■ Арифметические операторы
■ Операторы отношения
■ Логические операторы
■ Поразрядные операторы
■ Операторы назначения
■ Условные операторы
Обсудим эти подмножества один за другим.
2.6.1 Арифметические операторы
Арифметические операторы нужны, чтобы облегчить арифметические действия такие, как суммирование, вычитание, умножение и так далее. Операнды арифметических операторов должны иметь числовой тип. Булевы (Boolean) операнды не могут использоваться с ними, но позволяются операнды символов.
Следующая таблица демонстрирует список арифметических операторов.
Следующая программа демонстрирует использование арифметических операторов.
Пример 5:
class ArithmeticOp
{
public static void main(String args[])
{
int p=5,q=12,r=20,s;
s = p + q;
System.out.println(p+ + +q+ is +s) ;
s = p % q;
System.out.println(p+ % +q+ is +s);
System.out.print(s+ *= +r+ is );
s *= r;
System.out.println(s) ;
System.out.println( Value of p before operation is +p);
P++;
System.out.println( The Operation p++ is executed );
System.out.println( Value of p after operation is +p);
double x = 25.75, у = 14.25, z;
z = x - y;
System.out.println(x+ - +y+ is +z);
System.out.print(z+ -= 2.50 is );
z -= 2.50;
System.out.printIn(z);
System.out.println( Value of z before operation is +z);
z--;
System.out.println( The Operation z is executed );
System.out.println( Value of z after operation is +z);
z = x / y;
System.out.println(x+ / +y+ is +z);
}
}
Вывод вышеупомянутой программы,
Рисунок 2.2: Вывод ArithmeticOp
2.6.2 Операторы отношения
Операторы отношения используются, чтобы проверить отношение между двумя операндами.
Данное выражение возвращает булев результат. Они используются в управляющей структуре, чтобы оценить состояние.
Ниже приведена соответствующая таблица операторов отношения.
В вышеупомянутой таблице, а и b могут быть выражения.
В отличие от некоторых из арифметических операторов, в операторах отношения всегда присутствуют два операнда.
Обратите внимание: При сравнении двух операндов, их тип данных должен совпадать.
Следующая программа демонстрирует использование операторов отношения.
Пример 6:
class RelationalOp1 {
public static void main(String args[]){
float a = 10.OF;
double b = 10.0;
if(a == b)
System.out.println( a and b are equal );
else
System.out.println( a and b are not equal );
}
}
Вывод данной программы - было напечатано "a and b are equal".
2.6.3 Логические операторы
Логические операторы работают с булевыми операндами. Следующая таблица перечисляет логические операторы и их значение.
В вышеупомянутой таблице,
с1 и
с2 - переменные.
Логическое И (&) и Логическое ИЛИ (II) оценивает операнды по отдельности и затем считается полное выражение - True или False. Таблица показывает, как значение выражения решено с помощью разных операторов.
В Короткой схеме И (&&), если левая сторона оператора - ложная, правая сторона оператора не оценена. Только если левая сторона оператора - истинная, правая сторона оператора, оценена.
Короткая схема ИЛИ (II) используются, когда левая сторона оператора оценивает к истине, а правая сторона оператора не оценена.
Следующая программа показывает различие между простыми и укороченными логическими операторами.
Пример 7:
class LogicalOp {
public static void main(String args []) {
int daysPresent = 0, allowance = 1000,salary = 30000;
if(allowance == 0 & salary/daysPresent > 2000)
{
System.out.println( Daily wages are more than $2000 );
}
else
{
salary += allowance;
System.out.println( Daily wages more than $ +salary/30);
}
}
}
Вывод вышеупомянутой программы
Рисунок 2.3: Вывод LogicalOp
Вышеупомянутая программа успешно компилируется, но она выбрасывает исключение. Это происходит потому, что данное условие содержит два под условия, которые соединены логическим AND(&). Это логическое AND проверяет первое условие.
allowance = = 0
и хотя, значение allowance -1000, не равно 0, проверяется второе условие, которое.
salary/daysPresent > 2000
Переменная daysPresent имеет значение нуль, так что выбрасывается
ArithmeticException.
Если оператор логического AND (&) заменяется короткой схемой AND(&&), тогда вывод будет,
Ежедневная заработная плата - больше чем 1033 $
Короткая схема AND(&&) проверяет первое условие, то есть
allowance = = 0
и это оценивает как ложь. Таким образом, не проверяется второе условие и следовательно еще часть, если конструкция выполнена. Это не приводит к выбросу исключения.
Обратите внимание: Укороченная схема AND и OR часто используется при программировании в Java. Эти логические операторы лучше всего удовлетворяют множественные условия, которые состоят в том, чтобы быть проверенными, а второе условие зависит от результата первого условия.