Найти в Дзене
тотСамыйАйтишник

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

Java: План и дорожная карта развития + СОДЕРЖАНИЕ.

статья №4 Java: переменные и примитивные типы данных.

Приветствую Тебя, мой дорогой друг. Если ты учился в школе, то понимаешь что такое арифметические операции, а значит использовать их в Java определенно сможешь, а если нет, GO не в CS, а ГО в школу=).

Арифметические действия.
Арифметические действия.

1. Начнем с операции сложения: объявим две переменные(x и y) и сразу их проинициализируем, после чего результат сложения присвоим третьей переменной(z). Все просто, ничего сложного, двигаемся дальше.

Сложение.
Сложение.

2. Операция вычитания: то же самое что и в предыдущем примере, только результат уменьшится, опять же все просто. Дальше.

Вычитание.
Вычитание.

3. Операция умножения: и опять ничего интересного, увеличили в несколько раз и рады результату, мать его ДАЛЬШЕ.

Умножение.
Умножение.

4. Операция деления: а вот деление поинтересней. Уже наверно посмотрел пример и задался вопросом: "Почему единица, а не одна целая пять десятых"? Разберемся. На картинке видим что переменные имею целочисленный тип данных "int", в этом и фишка, "Java" просто откидывает дробную часть, результат от операции единица, то есть приводит к целому числу. Но как же добиться 1.5?

Деление.
Деление.

Хм, давайте попробуем переменной "z"изменить с целочисленного на вещественный тип "double", так-то я думаю логично=).

Деление.
Деление.

Но "Java", так не думает, а думает она так, если в делении участвую целые числа, то результат должен быть целочисленный в не зависимости от того что результирующая переменная будет вещественного типа. Ну, хорошо. Хм, значит давайте всем переменным поменяем на вещественный тип "double" и посмотрим что из этого получится.

Деление.
Деление.

Ха!Получилось! Ура, ура, ура! Так, а если программа большая и мы не можем просто так брать и менять типы. Что же в таком случае делать? Определимся, результат точно должен быть вещественным, с этим не поспорить, а вот что бы он получился таковым, необходимо всего лишь один вещественный операнд. Попробуем умножить один из операндов на "1.0", к примеру "x", тем самым преобразовать из целого числа в число с плавающей точкой.

Деление.
Деление.

И у нас снова получилось=). Но как то не красиво смотрится. А как же сделать покрасивше? Java дает возможность изменения типа данных непосредственно во время действия, та скажем на лету. Для того чтобы должны преобразовать целочисленный тип в вещественный, перед операндом "x" должны поставить "(double)" да, да именно в скобочках. Об преобразовании типов поговорим в ближайшей статье.

Деление.
Деление.

Вооот, теперь другое дело. Таким образом мы из операнда "х" со значение 6 преобразовали в значение 6.0. Получили правильный результат 1.5.

5. Еще одна интересная операция, деление по модулю: и так что мы видим, разделив по модулю ("x" % "y") с какого-то лешего получилось 2.0. Почему так получилось? А вот почему, 6 на 4 без остатка не делится, значит нужно найти такое число, чтобы могло поделиться, в данном случае такое число 4, то есть вместо 6 ставим 4 и получается 4 деленное на 4 получится 1 без дробной части, после того как мы нашли такое число, необходимо от 6 отнять наше найденное число 4 и в результате получаем остаток, который равен 2.

Деление по модулю.
Деление по модулю.

Другой пример: 16 на 5 без остатка не делится, находим число 15, на 5 делится, следовательно 16 - 15 = 1. Как-то так.

Деление по модулю.
Деление по модулю.

А это, нужно будет запомнить, если второй операнд больше первого, то ответ будет равен первому операнду. Пример: 5 % 15 = 5.

Если операнд два больше операнда один.
Если операнд два больше операнда один.

Если первый операнд отрицательный, то и результат будет так же отрицательный. Результат будет отрицательный и при двух отрицательных операндах.

Отрицательные операнды.
Отрицательные операнды.

Это арифметическое действие "%", очень нам пригодится при решении некоторых интересных задач.

6. ++Префиксный инкремент: увеличение на единицу, перед выполнением действия. То есть, данная арифметическая операция, перед тем как "x" отдаст свое значение переменной "y", ++инкремент увеличит значение ровно на единицу, более длинная запись x = x + 1; y = x;.

Префиксный инкремент.
Префиксный инкремент.

7. Постфиксный инкремент++: увеличение на единицу, после выполнения действия. Примерно как предыдущая арифметическая операция, но чуть другая, в начале "x" отдаст свое значение переменной "y", а после инкремент++ увеличит свое значение ровно на единицу, аналогичная запись y = x; x = x + 1; Поэтому "x" вернул 5, а после увеличился до 6.

Постфиксный инкремент.
Постфиксный инкремент.

8. --Префиксный декремент: уменьшение на единицу, перед выполнением действия. Данная операция, перед тем как "x" отдаст свое значение переменной "y" --декремент уменьшит значение ровно на единицу, более длинная запись x = x - 1; y = x;.

Префиксный декремент.
Префиксный декремент.

9. Постфиксный декремент--: уменьшение на единицу, после выполнения действия. Арифметическая операция, в начале "x" отдаст свое значение переменной "y", а после декремент-- уменьшит свое значение ровно на единицу, аналогичная запись y = x; x = x - 1; Поэтому "x" вернул 5, а после уменьшился до 4.

Постфиксный декремент.
Постфиксный декремент.

Закончили с арифметическими действиями, ближайшие статьи: константы, порядок выполнения арифметических действий, преобразование типов.

До встречи в следующей статье, потренируйся самостоятельно с арифметическими действиями.

статья №6 Java: Приоритет арифметических операций и операторы присвоения.

Поставь лайк если понравилась статья, тебе всего лишь "клик", а мне радости полные штаны =). Подписывайся на канал, будет много интересных публикаций =).