Java: Операторы

Сначала разберем базовую терминологию. Знак операции вроде + называют оператором. Оператор задает действие, например сложение:

System.out.println(8 + 2); // 10

Здесь + работает как оператор, а числа 8 и 2 называют операндами. Операндами называют значения, к которым оператор применяет действие.

операнд   оператор   операнд       результат
   8         +          2       →      10
   5         -          3       →      2
   4         *          3       →      12

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

System.out.println(3 + ); // так писать нельзя

Бинарными операции бывают не всегда. Существуют еще унарные, с одним операндом, и тернарные, с тремя.

Унарный минус

Один и тот же знак иногда означает разные операции. Посмотрите на минус:

System.out.println(-3); // -3

Здесь минус стоит перед одним числом и работает как унарный оператор. Он берет число 3 и возвращает противоположное ему, то есть -3.

Когда минус стоит между двумя числами, это уже вычитание:

System.out.println(5 - 2);  // 3
System.out.println(10 - 7); // 3

Разница особенно заметна на отрицательных числах:

System.out.println(5 - -2); // 7

Слева идет вычитание 5 - (...), а справа унарный минус превращает 2 в отрицательное число. Получается 5 - (-2), и это дает 7. Минус на минус дает плюс, ровно как в школе.

Значение минуса зависит от соседей. Рядом с двумя числами это вычитание, перед одним числом это смена знака. Запись -3 одновременно и само число, и оператор с операндом. У многих языков программирования такая же логика, так что вещь это привычная.

Унарным бывает и плюс. Запись +5 лишь подчеркивает, что число положительное, и значения не меняет:

System.out.println(+5); // 5

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

Задание

Напишите программу, которая посчитает разность между числами 6 и -81 и выведет ответ на экран.

Полезное

  • Отбивайте арифметические операторы пробелами от операндов, это хороший стиль программирования.

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

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