/
Программирование
/
Курс Java
/

Композиция операций

Java: Композиция операций

Что делать, когда в одной строке нужно несколько операций сразу? Их записывают подряд, и Java обрабатывает выражение шаг за шагом по строгим правилам.

Возьмем пример из одних умножений:

System.out.println(2 * 4 * 5 * 10); // 400

Чтобы понять, как считает Java, разберем выражение по шагам:

  • сначала вычисляется 2 * 4, остается 8 * 5 * 10
  • затем 8 * 5, остается 40 * 10
  • последнее умножение дает 400

Так операции соединяются друг с другом, и из простых действий собираются все более сложные выражения.

А если операции разные

Пока операторы одинаковые, все идет слева направо. А что будет, если смешать умножение и сложение?

System.out.println(2 + 3 * 4);

Получится 20 или 14? Ответ 14.

2 + 3 * 4
    └─┬─┘
2 +  12
└──┬───┘
   14

У операций есть приоритет, как и в математике. Умножение выполняется раньше сложения. Поэтому сначала считается 3 * 4, и только потом прибавляется двойка. Порядок можно изменить скобками. В выражении (2 + 3) * 4 сначала сложат 2 + 3, а результат 5 умножат на 4, и выйдет 20.

То же правило работает с вычитанием:

System.out.println(10 - 2 * 3); // 4

Сначала умножение 2 * 3, потом 10 - 6, итог 4.

Отрицательные числа внутри выражения

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

System.out.println(4 + -2); // 2
System.out.println(6 - -2); // 8

Разберем второй пример. Сначала унарный минус превращает 2 в -2, дальше операция читается как 6 - (-2), и это дает 8. То же самое, что и 6 + 2.

Что нужно запомнить

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

Задание

Реализуйте программу, которая вычисляет значение выражения 8 / 2 + 5 - -3 / 2 и выводит результат на экран. Не вычисляйте ничего самостоятельно, ваша программа должна производить все вычисления сама.

10

Обратите внимание, что интерпретатор производит арифметические вычисления в правильном порядке: сначала деление и умножение, потом сложение и вычитание. Иногда этот порядок нужно изменить — об этом следующий урок.

Также обратите внимание на то, что в java по умолчанию используется целочисленное деление, 3 / 2 будет 1.

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются