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

Шрифт
Интервал


Операторы +, – и * довольно простые, однако оператор деления целых чисел слегка хитрый.

Например, если 2 разделить на 3, результат будет 0.

Оператор модуля, который представлен знаком процентов, дает остаток от деления первого операнда на второй операнд.

Например, 2 модуль 3 возвращает 2 как результат.

Оператор модуля в Java работает также для чисел с плавающей запятой.

Рассмотрим другой пример использования оператора модуля.



Когда переменная со значением 104 делится на другую переменную b со значением 3, результат будет 34 с остатком 2.

Числовые значения хранятся как целые числа или числа с плавающей запятой.

Для целочисленного деления результат, – это целая часть деления, десятичная часть результата игнорируется.

Другими словами, целочисленное деление всегда возвращает целое число путем усечения без округления.

При этом может быть потеряна информация, когда десятичная часть отсекается.

Например, при делении 2 на 3 результат должен быть 0.66, но мы получаем 0 из-за отсечения.

Или 3 делим на 2 и получаем 1 вместо 1.5.

Если вы делите double на double, результат будет double, как и ожидалось.

Теперь вопрос, как Java оперирует со смешанными делениями, включающими целые числа и числа с плавающей запятой?

В общем, деление double дает double.

Когда целое делится на double или double делится на целое, результатом будет double.

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

Например, если 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:

( )

* / %

– +

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



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

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