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

Арифметические операции

Java: Арифметические операции

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

Сумма товаров в корзине интернет-магазина, координаты персонажа в игре, длительность видео в секундах. За всем этим стоят обычные арифметические операции.

К счастью, для старта хватит обычной школьной арифметики. С нее и начнем.

Сложение

В математике сумму записывают как 3 + 4. В Java выражение выглядит так же. Само по себе оно ничего не показывает на экране, поэтому результат нужно вывести.

Для вывода используют знакомую команду System.out.println(). Вот целая программа, которая складывает два числа и печатает результат:

class App {
    public static void main(String[] args) {
        System.out.println(3 + 4);
    }
}

Сначала вычисляется сумма, затем готовое число попадает внутрь команды печати.

System.out.println(3 + 4);
                   └─┬─┘
                     7

System.out.println(7);  →  7

После запуска на экране появится результат:

7

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

System.out.println("3 + 4"); // 3 + 4
System.out.println(3 + 4);   // 7

В первой строке Java видит текст и печатает его буквально. Во второй видит арифметику и считает.

Другие операции

Кроме сложения в Java есть весь привычный набор операций:

ОперацияСимволПримерРезультат
Сложение+2 + 35
Вычитание-7 - 25
Умножение*4 * 312
Деление/8 / 24
Остаток от деления%7 % 31

Выведем результат деления, а потом результат умножения:

System.out.println(8 / 2);     // 4
System.out.println(3 * 3 * 3); // 27

Отдельного оператора для возведения в степень в Java нет. Когда степень небольшая, число умножают само на себя нужное количество раз, как в примере выше с 3 * 3 * 3.

Деление целых чисел

С делением в Java связана важная особенность. Когда оба числа целые, результат тоже получается целым, а дробная часть отбрасывается:

System.out.println(8 / 2); // 4
System.out.println(7 / 2); // 3

Во втором примере на калькуляторе вышло бы 3.5. Java делит 7 на 2 нацело и оставляет только целую часть, то есть 3. Остаток теряется.

Так происходит потому, что целые числа в Java хранятся отдельно от дробных. Для работы с дробями в Java есть особый вид чисел. Их называют числами с плавающей точкой и записывают через точку, например 3.5. Пока нам хватит целых.

Остаток от деления

Операция % достает то, что остается после деления нацело.

System.out.println(7 % 3); // 1

Почему получается 1? Тройка помещается в семерке два раза, это дает 6. До семерки не хватает единицы, она и есть остаток.

Еще примеры:

System.out.println(10 % 4); // 2, четверка вошла в десятку дважды, до 10 осталось 2
System.out.println(15 % 5); // 0, пятерка делит 15 нацело

Остаток выручает во многих задачах. По нему проверяют, делится ли число нацело. Если остаток равен нулю, значит делится. Так отличают четные числа от нечетных, ведь остаток от деления на 2 равен 0 у четных и 1 у нечетных. А еще остаток помогает считать по кругу. Остаток от деления на 12 работает как циферблат часов, и 13 % 12 дает 1, ведь после двенадцати отсчет начинается заново. Эта операция встречается в коде постоянно.

Оформление выражений

Для Java между 3+4 и 3 + 4 разницы нет. Программа поймет оба варианта одинаково и в обоих случаях сложит числа. Разница только в читаемости. В программировании принято отбивать арифметические операторы пробелами, потому что так выражение легче воспринимать:

3 + 4
8 / 2
7 % 3

Вариант без пробелов тоже рабочий:

3+4
8/2
7%3

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

Задание

Выведите на экран результат деления числа 81 на 9.

Полезное

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

  • Деление на ноль приводит к ошибке.

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

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