Основы программирования с Java. Тимур Машнин

Чтение книги онлайн.

Читать онлайн книгу Основы программирования с Java - Тимур Машнин страница 18

Основы программирования с Java - Тимур Машнин

Скачать книгу

style="font-size:15px;">      Другими словами, целочисленное деление всегда возвращает целое число путем усечения без округления.

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

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

      ( )

      * / %

      – +

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

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

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

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

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

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

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

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

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

      Однако это не всегда случается в 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:

Скачать книгу