Размер шрифта
-
+

Основы программирования с Java - стр. 28

Это позволяет программе максимально сохранить информацию.

Например, если 2 делится на 3.0, результатом будет 0.6666 вместо 0.

Также, деление 3.0 на 2 даст результат 1.5.

Деление двух double 10.0 и 2.0 даст результат double 5.0.

Когда выражение вычисляется, мы должны определить порядок для выполнения операций, если в выражении больше одного оператора.

Когда мы изучали алгебру, мы узнали, что операции * умножения и / деления выполняются перед операциями + сложения и – вычитания, и такое же правило действует и в Java.

Например, в выражении m*x + b, m умножается на x перед прибавлением b к результату умножения.

Приоритет операторов задает порядок, в котором различные операторы выражения вычисляются.



Здесь показан стандартный порядок, которому следует Java:

( )

* / %

– +

Выражение, заключенное в круглые скобки, вычисляется первым.



Для вложенных скобок внутреннее выражение вычисляется первым.

Операторы * умножения, / деления и % остатка вычисляются вторыми, и, если их несколько, вычисление идет слева направо.

Операторы сложения и вычитания вычисляются после остальных операторов, и, если их несколько, вычисление идет слева направо.

Другая важная вещь в вычислении выражений, это концепция ассоциативности.

Ассоциативность используется для определения порядка, в котором операторы с одинаковым приоритетом вычисляются в выражении.

Правило ассоциации в этом примере, – это вычисление слева направо, и называется левой ассоциативностью.

При этом круглые скобки могут быть вставлены для усиления порядка вычисления.

Вы можете подумать, что все операции должны следовать левой ассоциации.

Однако это не всегда случается в Java, и мы уже видели оператор, который следует правой ассоциации, – это оператор присваивания =.

Вопросы

Задача

Что является результатом каждого из следующих выражений?

Expression X: 3 % 4 – 10 * 5

Expression Y: 5 + 11 / 2 * 2.0

Expression Z: 100 / 0

Варианты:

1.

X: -47

Y: 10.0

Z: 0

2.

X: 1

Y: 10.0

Z: 0

3.

X: -47

Y: 15.0

Z: ERROR

4.

X: -47

Y: 10.0

Z: ERROR

Ответ: 3.

Присваивание

Мы видели много выражений со знаком равенства в предыдущих примерах.

Все они использовали оператор присваивания.

Синтаксис оператора присваивания представляет собой размещение переменной на левой стороне знака равенства, выражения на его правой стороне и точки с запятой в конце.



Смысл или семантика оператора присваивания – это присвоить значение, вычисленное выражением на правой стороне, переменной на левой стороне, и исходное значение, хранимое в переменной, будет заменено.

Это обозначение может быть немного запутанным, поскольку в большинстве утверждений присваивания, левая сторона может быть не равна правой стороне в математическом смысле.

Страница 28