Меню сайта

Урок 5. Операторы в Java ( 4 часть )

Операторы быстрой оценки логических выражений (short circuit logical operators)

Существуют два интересных дополнения к набору логических опера­торов. Это — альтернативные версии операторов AND и OR, служащие для быстрой оценки логических выражений. Вы знаете, что если первый операнд оператора OR имеет значение true, то независимо от значения второго операнда результатом операции будет величина true. Аналогично в случае оператора AND, если первый операнд — false, то значение вто­рого операнда на результат не влияет — он всегда будет равен false. Если вы в используете операторы &amp-&amp- и || вместо обычных форм &amp- и |, то Java не производит оценку правого операнда логического выражения, если ответ ясен из значения левого операнда.Общепринятой практикой является использование операторов &amp-&amp- и || практически во всех случаях оценки булевых логических выражений. Версии этих операторов &amp- и | применяются только в битовой арифметике.

Тернарный оператор if-then-else

Общая форма оператора if-then-use такова:

выражение1? выражение2: выражениеЗ

В качестве первого операнда — «выражение1» — может быть исполь­зовано любое выражение, результатом которого является значение типа — boolean. Если результат равен true, то выполняется оператор, заданный вторым операндом, то есть, «выражение2». Если же первый операнд paвен false, то выполняется третий операнд — «выражениеЗ». Второй и третий операнды, то есть «выражение2» и «выражениеЗ», должны воз­вращать значения одного типа и не должны иметь тип void.

В приведенной ниже программе этот оператор используется для про­верки делителя перед выполнением операции деления. В случае нулевого делителя возвращается значение 0.

class Ternary {

public static void main(String args[]) {

int a = 42-

int b = 2-

int c = 99-

int d = 0-

int e = (b == 0) ? 0 : (a / b)-

int f = (d == 0) ? 0 : (c / d)-

System.out.println(«a = » + a)-

System.out.println(«b = » + b)-

System.out.println(«c = » + c)-

System.out.println(«d = » + d)-

System.out.println(«a / b = » + e)-

System.out.println(«c / d = » + f)-

} }

При выполнении этой программы исключительной ситуации деления на нуль не возникает и выводятся следующие результаты:

С: -&#92-&gt-java Ternary

а = 42

b = 2

с = 99

d = 0

a / b = 21

с / d = 0

Приоритеты операторов

В Java действует определенный порядок, или приоритет, операций. В элементарной алгебре нас учили тому, что у умножения и деления более высокий приоритет, чем у сложения и вычитания. В программировании также приходится следить и за приоритетами операций. В таблице ука­заны в порядке убывания приоритеты всех операций языка Java.

Высший

Категория: Обучение Java | Дата: 17.04.13

Меню раздела
Блок